码桶

发现社区成员的开源项目

geekssl /

wstats

公开
main
wstats/public/assets/Register-6t_of8Oo.js
Register-6t_of8Oo.js3.5 KB
import{u as $,a as q,r as a,b as m,j as e,F as h,B as y,T as H,L as J,P as K,s as M}from"./index-GWuvg2UH.js";import{B as N}from"./index-DihvOmSo.js";import{T as r}from"./index-BW_2QB9V.js";import"./IconTickCircle-BYgwCdAe.js";function X(){const{t:s,lang:z}=$(),R=q(),[j,E]=a.useState(""),[c,_]=a.useState(""),[p,F]=a.useState(""),[L,v]=a.useState(!1),[C,b]=a.useState(!1),[i,A]=a.useState(null),[x,W]=a.useState(""),[f,S]=a.useState(""),[D,P]=a.useState(""),[k,w]=a.useState(""),[o,I]=a.useState(0),u=!!(i&&!i.registration_enabled),l=!!(i&&i.registration_enabled&&i.email_verify_enabled),g=!!(i&&i.captcha_ready);a.useEffect(()=>{m.authPublic().then(A).catch(()=>{})},[]);const d=a.useCallback(async()=>{S("");try{const t=await m.captcha();P(t.id),w(t.image)}catch(t){P(""),w(""),r.error(t.message)}},[]);a.useEffect(()=>{l&&g&&d()},[l,g,d]),a.useEffect(()=>{if(o<=0)return;const t=setInterval(()=>I(B=>B<=1?0:B-1),1e3);return()=>clearInterval(t)},[o]);const G=async()=>{if(!(o>0||C)){if(!c)return r.error(s("emailPh"));if(!f)return r.error(s("captchaPh"));b(!0);try{const t=await m.emailCode(c,D,f,z);I(t&&t.resend||60),r.success(s("codeSent"))}catch(t){r.error(t.message)}finally{b(!1),d()}}},T=async()=>{if(u)return r.error(s("setRegClosed"));if(!c||!p)return r.error(s("email")+" / "+s("password"));if(p.length<8)return r.error(s("pwdPh"));if(l&&!x)return r.error(s("emailCodePh"));v(!0);try{const t=await m.register(c,p,j,l?x:void 0);M(t.token),R("/overview",{replace:!0})}catch(t){r.error(t.message)}finally{v(!1)}},n=u||l&&!g;return e.jsx("div",{className:"auth-page",children:e.jsxs("div",{className:"auth-card",children:[e.jsx("div",{style:{display:"flex",justifyContent:"center",marginBottom:8},children:e.jsx("div",{className:"logo-badge",children:"W"})}),e.jsx("div",{className:"auth-brand",children:s("appName")}),e.jsx("div",{className:"auth-sub",children:s("registerTitle")}),u&&e.jsx(N,{type:"warning",description:s("setRegClosed"),style:{marginBottom:12},closeIcon:null}),!u&&l&&!g&&e.jsx(N,{type:"danger",description:s("captchaNoGd"),style:{marginBottom:12},closeIcon:null}),e.jsxs("div",{style:{display:"flex",flexDirection:"column",gap:14,opacity:n?.5:1},children:[e.jsx(h,{size:"large",placeholder:s("nickname"),value:j,onChange:E,disabled:n}),e.jsx(h,{size:"large",placeholder:s("emailPh"),value:c,onChange:_,disabled:n}),l&&e.jsxs(e.Fragment,{children:[e.jsxs("div",{style:{display:"flex",gap:8,alignItems:"center"},children:[e.jsx(h,{size:"large",placeholder:s("captchaPh"),value:f,onChange:S,maxLength:4,style:{flex:1},disabled:n}),k?e.jsx("img",{src:k,alt:s("captchaPh"),title:s("captchaRefresh"),onClick:d,style:{width:132,height:44,borderRadius:6,cursor:"pointer",border:"1px solid var(--semi-color-border)",flexShrink:0,objectFit:"cover"}}):e.jsx(y,{size:"large",onClick:d,style:{flexShrink:0},children:s("captchaRefresh")})]}),e.jsxs("div",{style:{display:"flex",gap:8,alignItems:"center"},children:[e.jsx(h,{size:"large",placeholder:s("emailCodePh"),value:x,onChange:W,maxLength:6,style:{flex:1},disabled:n}),e.jsx(y,{size:"large",style:{flexShrink:0,minWidth:108},loading:C,disabled:n||o>0,onClick:G,children:o>0?`${o}s`:s("getCode")})]})]}),e.jsx(h,{size:"large",mode:"password",placeholder:s("pwdPh"),value:p,onChange:F,onEnterPress:T,disabled:n}),e.jsx(y,{size:"large",theme:"solid",loading:L,onClick:T,disabled:n,style:{marginTop:4},children:s("registerBtn")}),e.jsx(H.Text,{style:{textAlign:"center"},children:e.jsx(J,{to:"/login",children:s("haveAccount")})})]}),e.jsx("div",{style:{marginTop:20,paddingTop:14,borderTop:"1px solid #f0f1f3"},children:e.jsx(K,{})})]})})}export{X as default};