1import{e as T,g as A,G as y,m as F,q as g,P as G,h as D,V as I,B as N,a8 as $,a1 as B,a2 as U,f as Y,r as t,a9 as j,a as k,j as n,aa as Q,I as W,a7 as L,t as V,ab as J,u as _,ac as K,i as Z,b as X,a4 as ee}from"./index-Bk9gjvYU.js";import{u as z}from"./useRecaptcha-DptEra8k.js";import{W as ae}from"./WebsiteAlertBanner-Bhe8YIkt.js";import{e as te}from"./regex-B23rLncQ.js";import{u as w}from"./useInvalidateMe-SK6_efyU.js";import{A as se}from"./OptionalImageUpload-Dj0AWoeV.js";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},s=new Error().stack;s&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[s]="60731c18-3715-46e3-9e15-114b49691496",e._sentryDebugIdIdentifier="sentry-dbid-60731c18-3715-46e3-9e15-114b49691496")}catch{}})();const ne=e=>T({...e,mutationFn:async({token:s})=>{const{resendEmail:a}=await A.request({document:F`mutation ${y.ResendEmailMutation}($recaptchaResponse: String!) { 2 resendEmail(input: { recaptchaResponse: $recaptchaResponse }) { 3 success 4 } 5 }`,variables:{recaptchaResponse:s}});return a}}),ie=g(G)` 6 display: flex; 7 flex-direction: column; 8 padding: 0 32px 60px; 9 10 > div { 11 max-width: 552px; 12 } 13`,oe=g(D.H2)` 14 font-weight: 500; 15 margin-bottom: 32px; 16 margin-top: 28px; 17`,O=g(D.H3)` 18 font-weight: 500; 19`,ce=g(O)` 20 margin-bottom: 36px; 21`,H=g.div` 22 display: flex; 23 flex-direction: column; 24 padding-bottom: 36px; 25`,le=g(H)` 26 gap: 28px; 27 margin-bottom: 48px; 28`,re=g.hr` 29 color: var(--color-grayscale-3); 30 margin: 24px 0; 31`,de=g(I)` 32 margin-bottom: 40px; 33 max-width: 552px; 34`,ue=g(N)` 35 margin-top: 10px; 36`,me=g(I)` 37 margin-bottom: 40px; 38 min-width: 552px; 39`,pe=g.div` 40 display: flex; 41 flex-direction: column; 42 gap: var(--space-xl); 43`,fe=e=>{const s=$(),a=w();return T({...e,mutationFn:async({email:i,recaptchaResponse:o})=>{const{updateAccountEmail:l}=await A.request({document:Y(` 44 mutation UpdateAccountEmail( 45 $email: String! 46 $recaptchaResponse: String! 47 ) { 48 updateAccountEmail( 49 input: { 50 email: $email 51 recaptchaResponse: $recaptchaResponse 52 } 53 ) { 54 success 55 } 56 } 57 `),variables:{recaptchaResponse:o,email:i}});return l},onSuccess:(...i)=>{e?.onSuccess?.(...i);const[,o]=i;s.setQueryData([B.ME,U.Query.Me],l=>{if(l!==void 0)return{...l,unverifiedEmail:o.recaptchaResponse}}),a()}})},q=g.div` 58 display: flex; 59 flex-direction: column; 60 gap: 4px; 61`,ge={"validation.unique":{id:"validation.user.unique_email",description:"Error saying that the email is already used and cannot be changed",defaultMessage:"That email is already associated with another account. Please enter a unique email address."}},he=({email:e,isMainEditionBlocked:s,blockMainEdition:a,role:i})=>{const o=t.useId(),{createToast:l}=j(),[r,u]=t.useState(""),c=k(),[h,m]=t.useState(!1),{mutate:p,isPending:v,error:f,reset:d}=fe({onSuccess:()=>{l("default",c.formatMessage({id:"pages.account.email.success",description:"Text displayed inside a Toast when email update is successful",defaultMessage:"Good job! We've sent you a verification email."})),a(!1),m(!1),d()}}),x=t.useCallback(()=>{a(!1),m(!1),d()},[a,d]),M=t.useCallback(()=>{m(!0),a(!0)},[a]),b=t.useCallback(R=>{p({email:r,recaptchaResponse:R})},[r,p]),E=z(b),S=t.useCallback(()=>{d(),x(),u(e)},[d,x,e]),C=t.useCallback(R=>{u(R.value)},[]);t.useEffect(()=>{u(e)},[e]);const P=t.useMemo(()=>[...f?.validation.email??[],...f?.validation.recaptchaResponse??[]],[f]);return n.jsx(q,{children:n.jsx(Q,{canEdit:i!==L.Editor,customErrors:ge,editDisabled:!h&&s,editing:h,errors:P,hint:c.formatMessage({id:"pages.account.email.hint",description:"Small Text helping to fill account email input. Hints that verification email will be sent.",defaultMessage:"We'll send a verification email to your new address."}),htmlFor:o,label:c.formatMessage({id:"pages.account.email.label",description:"Text displayed above account email value",defaultMessage:"Email"}),loading:v,onCancel:S,onEdit:M,onSave:E,saveDisabled:!r||r===e||!te.test(r),value:e,children:n.jsx(W,{autoFocus:!0,id:o,kind:Array.isArray(f?.validation.email)?"error":"default",onChange:C,placeholder:c.formatMessage({id:"pages.account.email.placeholder",description:"Placeholder Text displayed in the account email input",defaultMessage:"Your email address"}),size:"medium",type:"email",value:r})})})},ve=e=>{const s=$(),a=w();return T({...e,mutationFn:async({name:i})=>{const{updateAccountName:o}=await A.request({document:F`mutation ${y.UpdateAccountNameMutation}($name: String!) { 62 updateAccountName(input: { name: $name }) { 63 success 64 } 65 }`,variables:{name:i}});return o},onSuccess:(...i)=>{e?.onSuccess?.(...i);const[,o]=i;s.setQueryData([B.ME,U.Query.Me],l=>{if(l!==void 0)return{...l,name:o.name}}),a()}})},xe=({name:e,isMainEditionBlocked:s,blockMainEdition:a})=>{const i=t.useId(),o=V(),{createToast:l}=j(),[r,u]=t.useState(""),c=k(),[h,m]=t.useState(!1),{mutate:p,isPending:v,error:f,reset:d}=ve({onSuccess:()=>{l("default",c.formatMessage({id:"pages.account.name.success",description:"Text displayed inside a Toast when name update is successful",defaultMessage:"You've updated your name."})),a(!1),m(!1),d()}}),x=t.useCallback(()=>{a(!1),m(!1),d()},[a,d]),M=t.useCallback(()=>{o.track("account.name.edit.start"),m(!0),a(!0)},[o,a]),b=t.useCallback(C=>{u(C.value)},[]),E=t.useCallback(()=>{d(),x(),u(e??"")},[d,x,e]),S=t.useCallback(()=>{o.track("account.name.edit.save"),p({name:r})},[p,r,o]);return t.useEffect(()=>{u(e??"")},[e]),n.jsx(q,{children:n.jsx(Q,{editDisabled:!h&&s,editing:h,errors:f?.validation.name,hint:c.formatMessage({id:"pages.account.name.hint",description:"Small Text helping to fill account name input",defaultMessage:"Please enter your first and last names"}),htmlFor:i,label:c.formatMessage({id:"pages.account.name.label",description:"Text displayed above account name value",defaultMessage:"Full name"}),loading:v,onCancel:E,onEdit:M,onSave:S,saveDisabled:r.length===0||r===e,value:e??"",children:n.jsx(W,{autoFocus:!0,disabled:v,id:i,kind:Object.keys(f?.validation??{}).length>0?"error":"default",onChange:b,placeholder:c.formatMessage({id:"pages.account.name.placeholder",description:"Placeholder Text displayed in the account name input",defaultMessage:"e.g. Jane Smith"}),size:"medium",type:"text",value:r})})})},Me=e=>{const s=w();return T({...e,mutationFn:async()=>{const{deleteAccountPicture:a}=await A.request({document:F`mutation ${y.DeleteAccountPictureMutation} { 66 deleteAccountPicture { 67 success 68 } 69 }`});return a},onSuccess:(...a)=>{e?.onSuccess?.(...a),s()}})},ye=e=>{const s=w();return T({...e,mutationFn:async({file:a})=>{const i=new FormData;i.append("operations",JSON.stringify({query:`mutation ${y.UpdateAccountPictureMutation}($file: Upload!) { 70 updateAccountPicture(input: { file: $file }) { 71 success 72 } 73 } 74 `,variables:{file:null},operationName:y.UpdateAccountPictureMutation})),i.append("map",'{"1":["variables.file"]}'),i.append("1",a);const o=await fetch(`${J}?op=${y.UpdateAccountPictureMutation}`,{method:"POST",body:i,credentials:"include"});if(o.ok)return(await o.json()).data.updateAccountPicture;throw{code:o.status,message:void 0,validation:{}}},onSuccess:(...a)=>{s(),e?.onSuccess?.(...a)}})},be=2*1024*1024,Ee=e=>e.size<=be,Se=()=>{const e=V(),s=_(),{createToast:a}=j(),i=k(),o=K(s.data?.name??null,s.data?.email),{mutate:l,isPending:r,error:u,reset:c}=Me({onSuccess:()=>{a("default",i.formatMessage({id:"pages.account.picture.remove.success",description:"Text displayed inside a Toast when picture has been successfully removed",defaultMessage:"Photo removed. Time to add a new one."}))}}),{mutate:h,isPending:m,error:p,reset:v}=ye({onSuccess:()=>{a("default",i.formatMessage({id:"pages.account.picture.change.success",description:"Text displayed inside a Toast when picture update and upload is successful",defaultMessage:"Success! Looking good."}))}}),[f,d]=t.useState(""),x=f.length>0?[f]:p?.validation.file!==void 0&&p.validation.file.length>0?p.validation.file:u?.validation.file!==void 0&&u.validation.file.length>0?u.validation.file:[],M=t.useCallback(()=>{v(),l()},[l,v]),b=t.useCallback(S=>{const{files:C}=S.currentTarget,P=C?.[0];P&&(Ee(P)?(d(""),c(),h({file:P})):d("validation.max:2048"))},[h,c]),E=t.useCallback(()=>{e.track("account.picture.add.click")},[e]);return n.jsx(q,{children:n.jsx(Z,{errors:x,htmlFor:"",children:n.jsx(se,{loading:m||r||s.isFetching,onChange:b,onModify:E,onRemove:M,placeholder:o,src:s.data?.picture??null})})})},we=()=>{const e=X({strict:!1}),s=_(),a=ee(),i=s.data?.name||null,o=s.data?.email??"",l=s.data?.unverifiedEmail||null,r=e.emailVerified==="1",u=a?.role??L.Editor,c=k(),{createToast:h}=j(),[m,p]=t.useState(!1),{mutate:v,isPending:f}=ne({onSuccess:()=>{h("default",c.formatMessage({id:"pages.account.email.resend.success",description:"Text displayed inside a Toast when user request for a new verification email succeed",defaultMessage:"We've sent a new email to {email}."},{email:l}))}}),d=t.useCallback(M=>
74{v({token:M})},[v]),x=z(d);return t.useEffect(()=>{r&&h("default",c.formatMessage({id:"pages.account.email.verify.success",description:"Text displayed inside a Toast when user request click verification email link",defaultMessage:"You've verified your email address."}))},[r]),n.jsxs(ie,{title:c.formatMessage({description:"Account page website title",id:"page.title.account",defaultMessage:"Personal details - Wisepops"}),children:[n.jsx(oe,{children:c.formatMessage({id:"pages.account.title",description:"Account page title",defaultMessage:"Personal details"})}),n.jsxs("div",{children:[n.jsxs(pe,{children:[n.jsx(ae,{}),l?n.jsx(de,{kind:"info",message:c.formatMessage({id:"pages.account.email.banner.message",description:"Resend a validation email banner message",defaultMessage:"We sent a verification email to {email}. Open it to activate your account."},{email:l}),title:c.formatMessage({id:"pages.account.email.banner.title",description:"Resend a validation email banner title",defaultMessage:"Almost there..."}),children:n.jsx(ue,{kind:"tertiary",loading:f,onClick:x,size:"medium",children:c.formatMessage({id:"pages.account.email.resend",description:"Text displayed inside the link to resend a validation email",defaultMessage:"Resend validation link"})})}):r?n.jsx(me,{kind:"success",message:c.formatMessage({id:"pages.account.email.changed.message",description:"Banner message after confirmation of email change",defaultMessage:"Remember to use the address {email} next time you login."},{email:o}),title:c.formatMessage({id:"pages.account.email.changed.title",description:"Banner title after confirmation of email change",defaultMessage:"Email address updated"})}):null]}),n.jsxs(le,{children:[n.jsx(O,{children:c.formatMessage({id:"pages.account.picture.title",description:"Section title to update account picture",defaultMessage:"Photo"})}),n.jsx(Se,{})]}),n.jsxs(H,{children:[n.jsx(ce,{children:c.formatMessage({id:"pages.account.forms.title",description:"Title for account name and email",defaultMessage:"Basic information"})}),n.jsx(xe,{blockMainEdition:p,isMainEditionBlocked:m,name:i}),n.jsx(re,{}),n.jsx(he,{blockMainEdition:p,email:l??o,isMainEditionBlocked:m,role:u})]})]})]})};export{we as component};
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.