vendor: 1,595 bytes, line 1
1import{cB as ye,bD as u,l as K,j as a,z as xe,A as Ce,e as Pe,bn as je,aK as Ne,a as H,r as J,cm as Ee,a4 as Se,i as we,p as ke,a8 as Ie}from"./index.C_jEAofg.js";import{r as l,f as Ae,L as Ue}from"./reactRouter.C6cvQAHO.js";import{E as ne}from"./EditIcon.C3zEPxhx.js";import{g as De}from"./uploadErrors.BuoBavFt.js";import{I as _e}from"./ImageSelectorPopup.sFab1OF6.js";import"./changeEmailPopup.CZzcVLs0.js";/* empty css */import{C as Re}from"./levelcreditseditpopup.Bv94erU-.js";import{u as re}from"./i18n.BxWiIRpk.js";import{A as Le}from"./AccountStatusBanners.C3PItQW4.js";import{U as Me,g as Te,i as Fe,s as Oe}from"./usernameValidation.BkJabqa9.js";import"./recharts.DzmhKP_O.js";import"./sortable.esm.CFCmxV-Q.js";/* empty css */import"./Select.BO5et_f4.js";import"./rateLimitError.ByypYhRt.js";import"./CreatorStatusBadge.BebQkP3q.js";import"./CurationTypeSelector.CbUjpZdk.js";import"./curationTypeUtils.UzM-6L0y.js";import"./profileIconSlots.D8bRZ9GW.js";import"./StatusBanner.B8Ld_wam.js";(function(){try{var m=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{};m.SENTRY_RELEASE={id:"aec9389561908f1f1b5366362ca3b629220ab900"},m._sentryModuleMetadata=m._sentryModuleMetadata||{},m._sentryModuleMetadata[new m.Error().stack]=function(e){for(var U=1;U<arguments.length;U++){var o=arguments[U];if(o!=null)for(var b in o)o.hasOwnProperty(b)&&(e[b]=o[b])}return e}({},m._sentryModuleMetadata[new m.Error().stack],{"_sentryBundlerPluginAppKey:tuf-website":!0});var n=new m.Error().stack;
1n&&(m._sentryDebugIds=m._sentryDebugIds||{},m._sentryDebugIds[n]="9f212708-1ff2-4c2b-b76d-93a2b1e07587",m._sentryDebugIdIdentifier="sentry-dbid-9f212708-1ff2-4c2b-b76d-93a2b1e07587")}catch{}})();const $e=/^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/,Ve=({isOpen:m,onClose:n,currentEmail:e,changeEmail:U})=>{const{t:o}=re(["pages","common"]),{requireElevation:b}=ye(),[F,c]=l.useState(""),[C,R]=l.useState(""),[p,D]=l.useState(!1),[O,P]=l.useState(!1),j=l.useRef(!1);if(l.useEffect(()=>{if(!m){P(!1),j.current=!1;return}if(c(""),R(""),D(!1),j.current)return;j.current=!0;let g=!1;return(async()=>{var y,k;try{await b("email-change",async()=>{}),g||P(!0)}catch(f){if((f==null?void 0:f.code)==="ELEVATION_CANCELLED"){n();return}u.error(((k=(y=f==null?void 0:f.response)==null?void 0:y.data)==null?void 0:k.message)||(f==null?void 0:f.message)||o("editProfile.emailChange.failed")),n()}})(),()=>{g=!0}},[m]),!m||!O)return null;const v=!K({email:e}),$=async g=>{var L,V,M,N,T;g.preventDefault();const y=F.trim().toLowerCase(),k=C.trim().toLowerCase(),f=(e||"").trim().toLowerCase();if(!y){u.error(o("editProfile.emailChange.empty"));return}if(!$e.test(y)){u.error(o("editProfile.emailChange.invalidFormat"));return}if(y!==k){u.error(o("editProfile.emailChange.mismatch"));return}if(!v&&y===f){u.error(o("editProfile.emailChange.unchanged"));return}D(!0);try{await b("email-change",()=>U(y)),u.success(o(v?"editProfile.emailChange.setSuccess":"editProfile.emailChange.success")),n()}catch(E){if((E==null?void 0:E.code)==="ELEVATION_CANCELLED")return;const _=(L=E.response)==null?void 0:L.status,I=(M=(V=E.response)==null?void 0:V.data)==null?void 0:M.message,z=(T=(N=E.response)==null?void 0:N.data)==null?void 0:T.code;_===403&&z==="STEP_UP_REQUIRED"?u.error(o("editProfile.emailChange.stepUpAgain",{defaultValue:"Please confirm again"})):_===403&&z==="EMAIL_REQUIRED"?u.error(I||o("editProfile.emailChange.emailRequired",{defaultValue:"Verify an email first"})):_===429?u.error(I||o("editProfile.emailChange.rateLimited")):u.error(I||o("editProfile.emailChange.failed"))}finally{D(!1)}};return a.jsxs(xe,{onClose:n,closeDisabled:p,overlayClassName:"change-email-popup-overlay",panelClassName:"change-email-popup",ariaLabelledBy:"change-email-popup-title",children:[a.jsxs("div",{className:"change-email-popup-header",children:[a.jsx("h2",{id:"change-email-popup-title",children:o(v?"editProfile.emailChange.setTitle":"editProfile.emailChange.title")}),a.jsx(Ce,{variant:"inline",className:"change-email-popup-close",onClick:n,disabled:p,"aria-label":o("buttons.close",{ns:"common"})})]}),a.jsxs("p",{className:"change-email-popup-current",children:[a.jsx("span",{className:"change-email-popup-current-label",children:o("editProfile.emailChange.current")}),a.jsx("span",{className:"change-email-popup-current-value",children:v?o("editProfile.emailChange.noEmailOnFile"):e})]}),a.jsxs("form",{className:"change-email-popup-form",onSubmit:$,children:[a.jsxs("div",{className:"change-email-popup-field",children:[a.jsx("label",{htmlFor:"change-email-new",children:o("editProfile.emailChange.new")}),a.jsx("input",{id:"change-email-new",type:"email",autoComplete:"email",className:"change-email-popup-input",value:F,onChange:g=>c(g.target.value),disabled:p})]}),a.jsxs("div",{className:"change-email-popup-field",children:[a.jsx("label",{htmlFor:"change-email-confirm",children:o("editProfile.emailChange.confirm")}),a.jsx("input",{id:"change-email-confirm",type:"email",autoComplete:"email",className:"change-email-popup-input",value:C,onChange:g=>R(g.target.value),disabled:p})]}),a.jsxs("div",{className:"change-email-popup-actions",children:[a.jsx("button",{type:"button",className:"change-email-popup-btn change-email-popup-btn-secondary",onClick:n,disabled:p,children:o("buttons.cancel",{ns:"common"})}),a.jsx("button",{type:"submit",className:"change-email-popup-btn change-email-popup-btn-primary",disabled:p,children:o(p?"editProfile.emailChange.updating":v?"editProfile.emailChange.setSubmit":"editProfile.emailChange.submit")})]})]})]})},ie=1*24*60*60*1e3,ca=({embeddedInSettings:m=!1}={})=>{var te;const{t:n}=re(["pages","common"]),{user:e,changeEmail:U,cancelPendingEmail:o,setUser:b,fetchUser:F}=Pe(),[c,C]=l.useState({username:(e==null?void 0:e.username)||"",nickname:(e==null?void 0:e.nickname)||"",country:((te=e==null?void 0:e.player)==null?void 0:te.country)||""}),[R,p]=l.useState(""),[D,O]=l.useState(""),P=Ae(),[j,v]=l.useState(!1),[$,g]=l.useState(!1),[y,k]=l.useState(!1),[f,L]=l.useState(e?je(e):null),[V,M]=l.useState(null),N=l.useRef(null),[T,E]=l.useState(!1),[_,I
1]=l.useState(!1),[z,W]=l.useState(null),[x,B]=l.useState(null),[ee,G]=l.useState(null),h=l.useRef(null),[S,q]=l.useState(!1),[Z,Q]=l.useState((e==null?void 0:e.username)||"");Ne(T||_),l.useEffect(()=>{if(e!=null&&e.lastUsernameChange){const t=new Date(e.lastUsernameChange).getTime(),d=Date.now()-t,i=ie-d;if(i>0){const r=new Date(t+ie);B({nextAvailableChange:r.toISOString(),timeRemaining:{milliseconds:i}})}}e!=null&&e.username&&(Q(e.username),C(t=>({...t,username:e.username})))},[e==null?void 0:e.lastUsernameChange,e==null?void 0:e.username]),l.useEffect(()=>{if(x!=null&&x.nextAvailableChange){const t=()=>{const s=new Date().getTime(),i=new Date(x.nextAvailableChange).getTime()-s;if(i<=0){B(null),G(null),h.current&&(clearInterval(h.current),h.current=null);return}const r=Math.floor(i/(60*60*1e3)),w=Math.floor(i%(60*60*1e3)/(60*1e3)),A=Math.floor(i%(60*1e3)/1e3);G({hours:r,minutes:w,seconds:A,formatted:`${r.toString().padStart(2,"0")}:${w.toString().padStart(2,"0")}:${A.toString().padStart(2,"0")}`})};return t(),h.current=setInterval(t,1e3),()=>{h.current&&(clearInterval(h.current),h.current=null)}}else G(null),h.current&&(clearInterval(h.current),h.current=null)},[x]),l.useEffect(()=>()=>{h.current&&clearInterval(h.current)},[]);const ae=t=>{const{name:s,value:d}=t.target;if(s==="username"){const i=Oe(d);C(r=>({...r,[s]:i}));return}C(i=>({...i,[s]:d}))},se=l.useCallback(async t=>{var d;g(!0),M(null);const s=new FormData;s.append("avatar",t);try{const i=await H.post(`${J.auth.profile.root()}/avatar`,s,{headers:{"Content-Type":"multipart/form-data"}}),r=(d=i.data.avatar)==null?void 0:d.urls,w=!!i.data.avatarIsGif,A=w&&(r!=null&&r.original_animated)?r.original_animated:(r==null?void 0:r.medium)??(r==null?void 0:r.original)??null;L(A),b(Y=>Y&&{...Y,avatarUrl:A,avatarIsGif:w}),u.success(n("editProfile.success.avatarUploaded"))}catch(i){const r=De(i,n("editProfile.error.failedToUploadAvatar"));M(r),u.error(r)}finally{g(!1),N.current&&(N.current.value="")}},[b,n]),X=l.useCallback(t=>{if(!Ee(t.type)){u.error(n("editProfile.error.invalidFileType"));return}const s=new FileReader;s.onload=()=>{W(s.result),E(!0)},s.readAsDataURL(t)},[n]),le=t=>{const s=t.target.files[0];s&&X(s)},oe=()=>{E(!1),W(null),N.current&&(N.current.value="")},ce=async t=>{await se(t)},me=async()=>{var s,d;if(!(!(e!=null&&e.avatarUrl)||!window.confirm(n("editProfile.avatar.confirmRemove")))){g(!0);try{await H.delete(`${J.auth.profile.root()}/avatar`),L(null),b({...e,avatarUrl:null,avatarId:null,avatarIsGif:!1}),u.success(n("editProfile.success.avatarRemoved"))}catch(i){u.error(((d=(s=i.response)==null?void 0:s.data)==null?void 0:d.error)||n("editProfile.error.failedToRemoveAvatar"))}finally{g(!1)}}},de=l.useCallback(t=>{t.preventDefault(),k(!0)},[]),ue=l.useCallback(t=>{t.preventDefault(),k(!1)},[]),fe=l.useCallback(t=>{t.preventDefault(),k(!1);const s=t.dataTransfer.files[0];s&&X(s)},[X]),pe=t=>{C(s=>({...s,country:t}))},ge=()=>{x||(Q(c.username),q(!0))},he=()=>{C(t=>({...t,username:Z})),q(!1)},ve=async t=>{var s,d;if(t.preventDefault(),v(!0),p(""),O(""),c.username){const i=Te(c.username);if((i==null?void 0:i.type)==="length"){p(n("editProfile.error.usernameLength")),v(!1);return}if((i==null?void 0:i.type)==="consecutivePeriods"){p(n("editProfile.error.usernameConsecutivePeriods")),v(!1);return}if((i==null?void 0:i.type)==="characters"){p(n("editProfile.error.usernameAlphanumeric")),v(!1);return}}try{const i={};(S||Fe(c.username,Z))&&(i.username=c.username),c.country!==(((s=e==null?void 0:e.player)==null?void 0:s.country)||"")&&(i.country=c.country),!(e!=null&&e.playerId)&&c.nickname!==((e==null?void 0:e.nickname)||"")&&(i.nickname=c.nickname),await H.put(`${J.auth.profile.root()}/me`,i),B(null),G(null),q(!1),Q(c.username),F(),u.success(n("editProfile.success.profileUpdated")),P("/profile")}catch(i){const r=(d=i.response)==null?void 0:d.data;(r==null?void 0:r.code)===429&&(r!=null&&r.nextAvailableChange)?(B({nextAvailableChange:r.nextAvailableChange,timeRemaining:r.timeRemaining}),C(w=>({...w,username:Z})),q(!1),u.error(r.error||n("editProfile.error.usernameChangeRateLimited"))):u.error((r==null?void 0:r.error)||n("editProfile.error.failedToUpdateProfile"))}finally{v(!1)}},be=l.useMemo(()=>{var A;if(!e)return!0;const t=e.username||"",s=((A=e.player)==null?void 0:A.country)||"",d=e.nickname||"",i=(c.username||"")===t,r=(c.country||"")===s,w=e.playerId?!0:(c.nickname||"")===(d||"");return i&&r&&w},[e,c.username,c.country,c.nickname]);return a.jsxs(a.Fragment,{children:[a.jsx(Le,{variant:"edit",user:e,navigate:P}),a.jsx("div",{className:`edit-profile-page${m?" edit-profile-page--embedded":""}`,children:a.jsxs("div",{className:"edit-profile-container page-content-600",children:[m?a.jsx("h2",{className:"edit-profile-page__page-title",children:n("editProfile.title")}):a.jsx("h1",{className:"edit-profile-page__page-title",children:n("editProfile.title")}),R&&a.jsx("div",{className:"error-message",children:R}),D&&a.jsx("div",{className:"success-message",children:D}),a.jsxs("div",{className:"avatar-section",children:[a.jsxs("div",{className:`avatar-upload-area ${y?"dragging":""} ${V?"error":""}`,onDragOver:de,onDragLeave:ue,onDrop:fe,onClick:()=>{var t;return(t=N.current)==null?void 0:t.click()},children:[f?a.jsx("img",{src:f,alt:"Profile",className:"avatar-preview"}):a.jsxs("div",{className:"avatar-placeholder",children:[a.jsx("i",{className:"fas fa-user"}),a.jsx("span",{children:n("editProfile.avatar.dragDropOrClick")})]}),a.jsx("input",{ref:N,type:"file",accept:Se,onChange:le,style:{display:"none"}})]}),f&&a.jsx("button",{className:"remove-avatar-btn btn-fill-danger",onClick:me,disabled:$,children:n($?"editProfile.avatar.removing":"editProfile.avatar.removeAvatar")})]}),a.jsxs("form",{onSubmit:ve,className:"edit-profile-form",children:[a.jsxs("div",{className:"form-group",children:[a.jsx("label",{htmlFor:"profile-email-display",children:n("editProfile.form.labels.email")}),a.jsxs("div",{className:"username-input-wrapper",children:[a.jsx("input",{type:"text",id:"profile-email-display",readOnly:!0,className:"input-field readonly",value:(e==null?void 0:e.email)||"",autoComplete:"off"}),a.jsx("button",{type:"button",className:"username-action-btn edit btn-fill-secondary",onClick:()=>I(!0),disabled:j,title:K(e)?n("editProfile.emailChange.editTitle"):n("editProfile.emailChange.setEditTitle"),children:a.jsx("span",{className:"username-action-icon",children:a.jsx(ne,{color:"#fff",size:"24px"})})})]}),(e==null?void 0:e.pendingEmail)&&a.jsxs("div",{className:"email-verification-message email-verification-message--compact",role:"status",children:[a.jsxs("span",{className:"profile-banner-text",children:["Pending verification: ",e.pendingEmail]}),a.jsx("button",{type:"button",className:"username-action-btn edit btn-fill-secondary",onClick:()=>P("/profile/verify-email"),children:"Verify"}),a.jsx("button",{type:"button",className:"username-action-btn edit btn-fill-secondary",onClick:async()=>{var t,s;try{await o(),O("Pending email change cancelled")}catch(d){p(((s=(t=d.response)==null?void 0:t.data)==null?void 0:s.message)||"Failed to cancel")}},children:"Cancel"})]}),!K(e)&&!(e!=null&&e.pendingEmail)&&a.jsxs("div",{className:"email-verification-message email-verification-message--compact",role:"button",tabIndex:0,onClick:()=>I(!0),onKeyDown:t=>{(t.key==="Enter"||t.key===" ")&&(t.preventDefault(),I(!0))},children:[a.jsx("span",{className:"profile-banner-text",children:n("editProfile.form.emailMissing.message")}),a.jsx("span",{className:"email-verification-arrow",children:n("editProfile.form.emailVerification.arrow")})]}),K(e)&&!we(e,ke.EMAIL_VERIFIED)&&!(e!=null&&e.pendingEmail)&&a.jsxs("div",{className:"email-verification-message email-verification-message--compact",role:"button",tabIndex:0,onClick:()=>P("/profile/verify-email"),onKeyDown:t=>{(t.key==="Enter"||t.key===" ")&&(t.preventDefault(),P("/profile/verify-email"))},children:[a.jsx("span",{className:"profile-banner-text",children:n("editProfile.form.emailVerification.message")}),a.jsx("span",{className:"email-verification-arrow",children:n("editProfile.form.emailVerification.arrow")})]})]}),a.jsxs("div",{className:"form-group",children:[a.jsxs("label",{htmlFor:"username",children:[n("editProfile.form.labels.username"),ee&&a.jsxs("span",{className:"username-timer",children:["(",ee.formatted,")"]})]}),a.jsxs("div",{className:"username-input-wrapper",children:[a.jsx("input",{type:"text",autoComplete:"off",id:"username",name:"username",value:c.username,onChange:ae,className:`input-field ${x?"disabled":""} ${S?"":"readonly"}`,disabled:!!x||!S,readOnly:!S&&!x,maxLength:Me}),!x&&a.jsx("button",{type:"button",className:`username-action-btn ${S?"cancel btn-fill-danger":"edit btn-fill-secondary"}`,onClick:S?he:ge,disabled:j&&S,title:S?n("buttons.cancel",{ns:"common"}):n("buttons.edit",{ns:"common"}),children:a.jsx("span",{className:"username-action-icon",children:S?a.jsx(Ie,{style:{transform:"rotate(45deg)"},color:"#fff",size:"24px"}):a.jsx(ne,{color:"#fff",size:"24px"})})})]})]}),e!=null&&e.playerId?a.jsx("div",{className:"edit-profile-page__nickname-moved",children:a.jsx(Ue,{to:"/settings/player",className:"edit-profile-page__nickname-moved-link",children:n("editProfile.nicknameMoved.hint")})}):a.jsxs("div",{className:"form-group",children:[a.jsx("label",{htmlFor:"nickname",children:n("editProfile.form.labels.nickname")}),a.jsx("input",{type:"text",autoComplete:"off",id:"nickname",name:"nickname",value:c.nickname,onChange:ae,required:!0,className:"input-field"})]}),a.jsxs("div",{className:"form-group",children:[a.jsx("label",{htmlFor:"country",children:n("editProfile.form.labels.country")}),a.jsx(Re,{value:c.country,onChange:pe,required:!0})]}),a.jsxs("div",{className:"form-actions",children:[a.jsx("button",{className:"button btn-fill-neutral-dark",type:"button",onClick:()=>P("/profile"),disabled:j,children:n("buttons.cancel",{ns:"common"})}),a.jsx("button",{className:"button submit-button btn-fill-primary",type:"submit",disabled:j||be,children:j?n("loading.saving",{ns:"common"}):n("editProfile.form.buttons.saveChanges")}
1)]})]})]})}),a.jsx(_e,{isOpen:T,onClose:oe,onSave:ce,currentAvatar:f,initialImage:z}),a.jsx(Ve,{isOpen:_,onClose:()=>I(!1),currentEmail:e==null?void 0:e.email,changeEmail:U})]})};export{ca as default};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.