1import{u as N,r as i,j as e,L as v,B as f}from"./index-D7O4L0AS.js";import{I as S,Q as I,a as B,b as T}from"./input-otp-ipNkxSRh.js";import{c as k,a as c,u as F,I as j,C as E}from"./input-DDXd1YKx.js";import{C as P,a as $,b as D,c as L,d as R}from"./card-CjKV5_U8.js";import{L as m}from"./label-CF1iDV6H.js";import{d as O,s as V}from"./api-vgGodFNJ.js";const b=k({email:c().email("请è¾å
¥ææçé®ç®±å°å").required("请è¾å
¥é®ç®±"),password:c().min(6,"å¯ç è³å°éè¦ 6 ä½").required("请è¾å
¥æ°å¯ç "),code:c().length(6,"请è¾å
¥ 6 ä½éªè¯ç ").required("请è¾å
¥éªè¯ç ")});function M(){const{toast:t}=N(),[o,u]=i.useState(""),[d,l]=i.useState(!1),[C,p]=i.useState(60),[h,x]=i.useState(!1),[g,w]=i.useState(!1);i.useEffect(()=>{if(!d)return;const r=window.setInterval(()=>{p(a=>a<=1?(window.clearInterval(r),l(!1),60):a-1)},1e3);return()=>window.clearInterval(r)},[d]);const s=F({initialValues:{email:"",password:"",code:""},validationSchema:b,validateOnMount:!0,onSubmit:async r=>{if(!o){t({variant:"destructive",description:"请å
è·åé®ç®±éªè¯ç "});return}w(!0);try{const a=E.SHA256(r.password).toString(),n=await O({email:r.email,password:a,code:r.code,codeId:o});if(!n.success){t({variant:"destructive",description:n.msg});return}t({description:n.msg}),l(!1),u(""),s.resetForm()}catch(a){t({variant:"destructive",description:a instanceof Error?a.message:"å¯ç é置失败ï¼è¯·ç¨åéè¯"})}finally{w(!1)}}}),y=async()=>{var r;s.setFieldTouched("email",!0);try{await b.validateAt("email",s.values)}catch{t({variant:"destructive",description:"请å
è¾å
¥ææçé®ç®±å°å"});return}x(!0);try{const a=await V({email:s.values.email,type:"ResetPwd"});if(!a.success){const n=(r=a.data)!=null&&r.message?`ï¼${a.data.message}`:"";t({variant:"destructive",description:`${a.msg}${n}`});return}u(a.data.codeId),p(60),l(!0),t({description:a.msg})}catch(a){t({variant:"destructive",description:a instanceof Error?a.message:"éªè¯ç åé失败ï¼è¯·ç¨åéè¯"})}finally{x(!1)}};return e.jsx("main",{id:"main-content",className:"grid min-h-dvh place-items-center bg-background px-4 py-12",children:e.jsxs("div",{className:"w-full max-w-md",children:[e.jsxs(v,{to:"/login",className:"mb-5 inline-flex items-center gap-2 text-sm font-medium text-muted-foreground hover:text-primary",children:[e.jsx("img",{src:"/favicon.png",alt:"",className:"h-8 w-8 rounded-lg",width:"128",height:"128"}),"è¿åç»å½"]}),e.jsxs(P,{className:"border-border bg-card shadow-whisper",children:[e.jsxs($,{className:"space-y-2 pb-5",children:[e.jsx("p",{className:"kami-eyebrow",children:"è´¦æ·æ¢å¤"}),e.jsx(D,{className:"text-[1.75rem] tracking-normal",children:"éç½®å¯ç "}),e.jsx(L,{children:"éè¿é®ç®±éªè¯ç 设置ä¸ä¸ªæ°å¯ç "})]}),e.jsxs(R,{children:[e.jsxs("form",{onSubmit:s.handleSubmit,className:"grid gap-5",noValidate:!0,children:[e.jsxs("div",{className:"grid gap-2",children:[e.jsx(m,{htmlFor:"email",children:"é®ç®±"}),e.jsxs("div",{className:"flex gap-2",children:[e.jsx(j,{id:"email",name:"email",type:"email",autoComplete:"email",placeholder:"[email protected]",value:s.values.email,onChange:s.handleChange,onBlur:s.handleBlur,"aria-invalid":!!(s.touched.email&&s.errors.email),"aria-describedby":"reset-email-error"}),e.jsx(f,{type:"button",variant:"outline",className:"shrink-0 px-3",disabled:d||g,onClick:y,loading:h,loadingText:"åéä¸",children:d?`${
1C}s`:"åééªè¯ç "})]}),e.jsx("p",{id:"reset-email-error",className:"min-h-5 text-sm text-destructive",children:s.touched.email?s.errors.email:""})]}),e.jsxs("div",{className:"grid gap-2",children:[e.jsx(m,{htmlFor:"password",children:"æ°å¯ç "}),e.jsx(j,{id:"password",name:"password",type:"password",autoComplete:"new-password",value:s.values.password,onChange:s.handleChange,onBlur:s.handleBlur,"aria-invalid":!!(s.touched.password&&s.errors.password),"aria-describedby":"reset-password-error"}),e.jsx("p",{id:"reset-password-error",className:"min-h-5 text-sm text-destructive",children:s.touched.password?s.errors.password:""})]}),e.jsxs("div",{className:"grid gap-2",children:[e.jsx(m,{htmlFor:"reset-code",children:"é®ç®±éªè¯ç "}),e.jsx(S,{id:"reset-code",name:"code",maxLength:6,pattern:I,value:s.values.code,onChange:r=>s.setFieldValue("code",r),onBlur:()=>s.setFieldTouched("code",!0),"aria-describedby":"reset-code-error",children:e.jsx(B,{children:[0,1,2,3,4,5].map(r=>e.jsx(T,{index:r},r))})}),e.jsx("p",{id:"reset-code-error",className:"min-h-5 text-sm text-destructive",children:s.touched.code?s.errors.code:""})]}),e.jsx(f,{type:"submit",className:"w-full",disabled:!s.isValid||!o||h,loading:g,loadingText:"éç½®ä¸",children:"确认éç½®"})]}),e.jsxs("p",{className:"mt-6 text-center text-sm text-muted-foreground",children:["å·²ç»æ³èµ·å¯ç ï¼"," ",e.jsx(v,{to:"/login",className:"font-medium text-primary hover:underline",children:"è¿åç»å½"})]})]})]})]})})}export{M as ResetPwd};
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.