Files
ambersplace.net/cohost-archive/static/client-preact-components-pages-reset-password.0ee0d8189c9fba5403f1.js

2 lines
8.0 KiB
JavaScript

"use strict";(self.__LOADABLE_LOADED_CHUNKS__=self.__LOADABLE_LOADED_CHUNKS__||[]).push([[607],{68248:function(e,t,a){a.d(t,{Z:function(){return s}});class s{static async getSalt(e){const t=new URL("/api/v1/login/salt",document.URL);return t.searchParams.append("email",e),(await fetch(t.toString()).then((e=>e.json().then((e=>e))))).salt}static async hashPasswordInWorker(e,t,s){const r=new Worker(new URL(a.p+a.u(3639),a.b));return new Promise((a=>{r.onmessage=e=>{a(e.data.clientHash)},r.postMessage({email:e,password:s,salt:t})}))}}},72228:function(e,t,a){a.d(t,{F:function(){return m}});var s=a(97244),r=a(34377),l=a(65443),n=a.n(l),o=a(94159),i=a(99838);function c(){return c=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var a=arguments[t];for(var s in a)Object.prototype.hasOwnProperty.call(a,s)&&(e[s]=a[s])}return e},c.apply(this,arguments)}const m=({style:e="light",showValidity:t=!0,name:a,control:l,rules:m,trigger:d,...u})=>{const{field:p,fieldState:g}=(0,i.bc)({name:a,control:l,rules:m}),{name:h,onChange:y}=p,[f,w]=(0,o.useState)();(0,o.useEffect)((()=>{p.ref(f)}),[f,p]);const{inputStyleClasses:b,contentDivStyleClasses:E,validityIconStyleClasses:v}=(0,o.useMemo)((()=>{switch(e){case"light":return{inputStyleClasses:"border-gray-600 text-notBlack\n placeholder:text-gray-600\n focus:border-notBlack disabled:border-gray-300",contentDivStyleClasses:"to-notWhite",validityIconStyleClasses:"bg-notWhite"};case"dynamic":return{inputStyleClasses:"co-styled-input",contentDivStyleClasses:"co-styled-input-content",validityIconStyleClasses:"co-styled-input-validity-icon"};default:return{inputStyleClasses:"border-gray-400 text-notWhite \n placeholder:text-gray-400\n focus:border-notWhite read-only:bg-gray-700",contentDivStyleClasses:"to-notBlack",validityIconStyleClasses:"bg-notBlack"}}}),[e]);return(0,o.useEffect)((()=>{f&&f.value&&f.value!==u.defaultValue&&f.value!==p.value&&!g.isTouched&&(y(f.value),d(h,{shouldFocus:!0}))}),[f,p.value,h,g.isTouched,y,u.defaultValue,d]),o.createElement("div",{className:"relative"},o.createElement("input",c({className:n()("\n w-full min-w-[15rem] rounded-lg border-2 bg-transparent\n ",b)},u,p,{ref:w})),t&&!u.readOnly&&g.isTouched?o.createElement(o.Fragment,null,o.createElement("div",{className:n()("\n absolute bottom-0 right-9 top-0 my-auto h-6 w-3 \n bg-gradient-to-r from-transparent\n ",E)}),g.invalid?o.createElement(s.Z,{className:n()("\n absolute bottom-0 right-3 top-0 my-auto h-6 \n w-6 text-red\n ",v)}):o.createElement(r.Z,{className:n()("\n absolute bottom-0 right-3 top-0 my-auto h-6\n w-6 bg-notWhite text-green\n ",v)})):null)}},69369:function(e,t,a){a.r(t),a.d(t,{ResetPasswordPage:function(){return f},default:function(){return w}});var s=a(94159),r=a(90275),l=a(70069),n=a(12093),o=a(86036),i=a.n(o),c=a(99838),m=a(51028),d=a(6553),u=a(28922);const p=()=>{const{t:e}=(0,m.$G)(),[t,a]=(0,s.useState)(""),[r,l]=(0,s.useState)(!1),{handleSubmit:o,control:p,trigger:g,formState:{errors:h}}=(0,c.cI)({mode:"all"});return s.createElement("form",{onSubmit:o((async e=>{l(!0);const{email:t}=e,s={email:t};try{await i().post(n.ZP.public.apiV1.requestPasswordReset().toString(),s),l(!1),location.replace(n.ZP.public.login())}catch(e){a("Request failed."),l(!1)}})),className:"py flex flex-col gap-6"},s.createElement("h1",{className:"font-league text-2xl"},"Reset password"),s.createElement("div",{className:"flex flex-col gap-2"},s.createElement("label",{htmlFor:"email",className:"text-lg"},e("client:register.email.label")),s.createElement(u.y,{trigger:g,type:"email",autoComplete:"email",placeholder:"bradley@example.com",name:"email",control:p,rules:{required:"E-mail address is required!"}}),s.createElement("p",{className:"text-red"},h.email?h.email.message:null),s.createElement("p",{className:"text-sm"},"If this email exists in our system, we'll send a reset link here. Please check your spam folder if you haven't received it within 5 or so minutes!")),s.createElement("div",{className:"flex flex-col gap-2"},s.createElement(d.p,{type:"submit",disabled:r},"send reset email"),t?s.createElement("p",{className:"text-red"},t):null))};var g=a(68248);function h(){return h=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var a=arguments[t];for(var s in a)Object.prototype.hasOwnProperty.call(a,s)&&(e[s]=a[s])}return e},h.apply(this,arguments)}const y=({email:e,resetNonce:t})=>{const{t:a}=(0,m.$G)(),[r,l]=(0,s.useState)(""),[o,p]=(0,s.useState)(!1),{register:y,handleSubmit:f,getValues:w,control:b,trigger:E,formState:{errors:v}}=(0,c.cI)({mode:"all",defaultValues:{email:e,resetNonce:t}});return s.createElement("form",{onSubmit:f((async e=>{p(!0);const{email:t,resetNonce:a}=e,s=await g.Z.getSalt(e.email),r={type:"reset",newClientHash:await g.Z.hashPasswordInWorker(e.email,s,e.password),email:t,resetNonce:a};try{const e=await i().post(n.ZP.public.apiV1.changePassword().toString(),r);p(!1),location.replace(e.data.redirectTo)}catch(e){l("Changing password failed."),p(!1)}})),className:"py flex flex-col gap-6"},s.createElement("input",h({type:"hidden"},y("email",{required:!0}))),s.createElement("input",h({type:"hidden"},y("resetNonce",{required:!0}))),s.createElement("h1",{className:"font-league text-2xl"},"Reset password"),s.createElement("div",{className:"flex flex-col gap-2"},s.createElement("label",{htmlFor:"password",className:"text-lg"},a("client:register.password.label")),s.createElement(u.y,{trigger:E,type:"password",autoComplete:"new-password",placeholder:"hunter2",name:"password",control:b,rules:{required:a("client:register.password.required","Password is required!").toString(),minLength:{value:8,message:a("client:register.password.min-length","Password must be at least 8 characters!").toString()}}}),s.createElement("p",{className:"text-red"},v.password?v.password.message:null),s.createElement(u.y,{trigger:E,type:"password",placeholder:"hunter2",autoComplete:"new-password",control:b,name:"passwordConfirm",rules:{validate:e=>e===w().password||a("client:register.password.confirm-password-mismatch","Passwords must match!").toString()}}),s.createElement("p",{className:"text-sm"},a("client:register.password.description","Your password must be at least 8 characters. Other than that, go wild.")),s.createElement("p",{className:"text-sm"},s.createElement(m.cC,{i18nKey:"client:register.password.password-manager"},"Please consider"," ",s.createElement("a",{rel:"noopener noreferrer",target:"_blank",className:"font-bold text-mango hover:underline",href:"https://www.consumerreports.org/digital-security/everything-you-need-to-know-about-password-managers-a5624939418/"},"using a password manager")," ","to generate a secure password.")),s.createElement("p",{className:"text-red"},v.passwordConfirm?v.passwordConfirm.message:null)),s.createElement("div",{className:"flex flex-col gap-2"},s.createElement(d.p,{type:"submit",disabled:o},"reset password"),r?s.createElement("p",{className:"text-red"},r):null))},f=({email:e,resetNonce:t})=>s.createElement(s.Fragment,null,s.createElement(r.ql,{title:"reset password"}),s.createElement(l.L,{className:"-ml-6 text-notWhite lg:-ml-12"}),e&&t?s.createElement(y,{email:e,resetNonce:t}):s.createElement(p,null));f.displayName="reset-password";var w=f},28922:function(e,t,a){a.d(t,{y:function(){return n}});var s=a(94159),r=a(72228);function l(){return l=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var a=arguments[t];for(var s in a)Object.prototype.hasOwnProperty.call(a,s)&&(e[s]=a[s])}return e},l.apply(this,arguments)}const n=({...e})=>s.createElement(r.F,l({style:"dark"},e))}}]);
//# sourceMappingURL=client-preact-components-pages-reset-password.0ee0d8189c9fba5403f1.js.map