1import{S as b}from"./Page-BZnwvDJj.js";import{T as v}from"./ToggleRow-DkHhaCu2.js";import{_ as V,e as S,u as E}from"./VueFinalModal.esm-B_ZhvDz4.js";import{F as _}from"./Field-D1qez_hM.js";import{I as P}from"./Input-OOB3C693.js";import{S as C}from"./Select-BMe8l0CI.js";import{a as x}from"./apiPost-Dloe6BMu.js";import{i as N}from"./isEmailValid-Cq8bst8j.js";import{q as w,g as U,t as f,x as a,j as i,k as p,v as o,s as k,E as u,F}from"./charts-DjP_BkTY.js";import"./Button-DiH6GFIf.js";import"./FormCard-Bar4oOSC.js";import"./Card-BOAjZRq2.js";import"./Icon-_6oLRAba.js";import"./control-UkHg6rIs.js";const O={components:{SettingsPage:b,ToggleRow:v,Field:_,Input:P,Select:C},data(){return{user:null,loading:!1,changePassword:!1,password:null,passwordConfirm:null,usernameError:null,emailError:null,passwordError:null,newsletterOptions:[{value:"daily",label:"Daily"},{value:"weekly",label:"Weekly"},{value:"fortnightly",label:"Fortnightly"},{value:"monthly",label:"Monthly"},{value:"never",label:"Never"}]}},created(){this.user=JSON.parse(JSON.stringify(this.adminStore.getCurrUser)),this.user.newsletter==null&&(this.user.newsletter="never")},mounted(){this.$refs.username?.$el?.focus()},computed:{...S(E)},methods:{async submit(){let t=!0;if(this.usernameError=null,this.emailError=null,this.passwordError=null,(this.user.username==null||this.user.username.trim().length==0)&&(this.usernameError="Please type in a valid username",t=!1),(this.user.email==null||!N(this.user.email))&&(this.emailError="Please type a valid email.",t=!1),this.changePassword&&(this.password==null||this.password.length<8?(this.passwordError="Your password must be at least 8 characters long.",t=!1):this.password!==this.passwordConfirm&&(this.passwordError="The two passwords do not match.",t=!1)),!!t){this.loading=!0;try{const s=await x("/user/account",{user:this.user,changePassword:this.changePassword,password:this.password},this.adminStore.getToken),d=s?await s.body:null;if(d!=null&&d.error!=null){this.emailError=d.error;return}this.adminStore.setCurrUser(JSON.parse(JSON.stringify(this.user))),this.changePassword=!1,this.password=null,this.passwordConfirm=null,this.eventBus.emit("notification-event",{type:"success",message:"Your account was saved successfully"})}finally{this.loading=!1}}}}},T={class:"pt-[32px] pb-[80px]"},B={class:"flex flex-col gap-ad-field"};function I(t,s,d,J,e,c){const m=i("Input"),n=i("Field"),h=i("Select"),g=i("ToggleRow"),y=i("SettingsPage");return p(),w("div",T,[e.user!=null?(p(),U(y,{key:0,title:"My account",saving:e.loading,onSave:c.submit},{default:a(()=>[o(n,{id:"input-username",label:"Username",error:e.usernameError,hint:"Shown next to anything you post on your sites."},{default:a(r=>[o(m,u(r,{ref:"username",modelValue:e.user.username,"onUpdate:modelValue":s[0]||(s[0]=l=>e.user.username=l),disabled:e.loading,"data-testid":"account-username"}),null,16,["modelValue","disabled"])]),_:1},8,["error"]),o(n,{id:"input-email",label:"Email",error:e.emailError,hint:"Used to sign in, and for anything we need to send you."},{default:a(r=>[o(m,u(r,{modelValue:e.user.email,"onUpdate:modelValue":s[1]||(s[1]=l=>e.user.email=l),type:"email",disabled:e.loading,"data-testid":"account-email"}),null,16,["modelValue","disabled"])]),_:1},8,["error"]),o(n,{id:"input-newsletter",label:"Newsletter",hint:"How often we email you a summary of activity across your sites."},{default:a(r=>[o(h,u(r,{modelValue:e.user.newsletter,"onUpdate:modelValue":s[2]||(s[2]=l=>e.user.newsletter=l),options:e.newsletterOptions,disabled:e.loading,"data-testid":"account-newsletter"}),null,16,["modelValue","options","disabled"])]),_:1}),k("div",B,[o(g,{id:"input-change-password",modelValue:e.changePassword,"onUpdate:modelValue":s[3]||(s[3]=r=>e.changePassword=r),label:"Change my password",description:"Leave this alone unless you want a new password.",disabled:e.loading},null,8,["modelValue","disabled"]),e.changePassword?(p(),w(F,{key:0},[o(n,{id:"input-password",label:"New password",error:e.passwordError},{default:a(r=>[o(m,u(r,{modelValue:e.password,"onUpdate:modelValue":s[4]||(s[4]=l=>e.password=l),type:"password",disabled:e.loading,"data-testid":"account-password"}),null,16,["modelValue","disabled"])]),_:1},8,["error"]),o(n,{id:"input-password-confirm",label:"Confirm new password"},{default:a(r=>[o(m,u(r,{modelValue:e.passwordConfirm,"onUpdate:modelValue":s[5]||(s[5]=l=>e.passwordConfirm=l),type:"password",disabled:e.loading,"data-testid":"account-password-confirm"}),null,16,["modelValue","disabled"])]),_:1})],64)):f("",!0)])]),_:1},8,["saving","onSave"])):f("",!0)])}const X=V(O,[["render",I]]);
1export{X 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.