2 lines
2.8 KiB
JavaScript
2 lines
2.8 KiB
JavaScript
import{d as w,o as g,m as y,c as b,f as e,t as o,u as s,l as t,g as p,i as m,A as f,h as T,j as i,p as k}from"./index.js";import{a as C,l as A}from"./auth.js";const V={class:"auth-page"},x={class:"auth-card"},j={class:"auth-title"},U={class:"auth-subtitle"},B={class:"auth-form-group"},D={class:"auth-label",for:"username"},K=["placeholder"],N={class:"auth-form-group"},P={class:"auth-label",for:"email"},S={class:"auth-form-group"},E={class:"auth-label",for:"password"},F={class:"auth-form-group"},M={class:"auth-label",for:"invite"},O=["placeholder"],R=["disabled"],q={class:"auth-error"},H={class:"auth-link"},J={href:"/login"},L=w({__name:"RegisterApp",setup(z){const u=i(""),d=i(""),c=i(""),h=i(""),r=i(""),v=i(!1),_=async()=>{if(!u.value||!d.value||!c.value||!h.value){r.value=t("auth.fillAllFields");return}v.value=!0,r.value="";try{const a=await(await fetch("/register",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({username:u.value,email:d.value,password:c.value,invite_code:h.value})})).json();if(a.success){window.location.href="/login";return}r.value=a.error||t("auth.registerFailed")}catch{r.value=t("auth.networkErrorRetry")}finally{v.value=!1}};return g(async()=>{if(C(A()),window.ensureCsrfToken)try{await window.ensureCsrfToken()}catch{}try{const a=await(await fetch("/api/session-status",{credentials:"same-origin"})).json()}catch(n){console.warn("[auth-debug] register page session-status failed:",n)}}),(n,a)=>(y(),b("main",V,[e("section",x,[e("h1",j,o(s(t)("auth.createAccount")),1),e("p",U,o(s(t)("auth.registerDoneHint")),1),e("div",B,[e("label",D,o(s(t)("auth.username")),1),p(e("input",{id:"username","onUpdate:modelValue":a[0]||(a[0]=l=>u.value=l),type:"text",class:"auth-input",placeholder:s(t)("auth.usernamePlaceholder"),autocomplete:"username"},null,8,K),[[m,u.value,void 0,{trim:!0}]])]),e("div",N,[e("label",P,o(s(t)("auth.email")),1),p(e("input",{id:"email","onUpdate:modelValue":a[1]||(a[1]=l=>d.value=l),type:"email",class:"auth-input",autocomplete:"email"},null,512),[[m,d.value,void 0,{trim:!0}]])]),e("div",S,[e("label",E,o(s(t)("auth.password")),1),p(e("input",{id:"password","onUpdate:modelValue":a[2]||(a[2]=l=>c.value=l),type:"password",class:"auth-input",autocomplete:"new-password",onKeydown:f(_,["enter"])},null,544),[[m,c.value]])]),e("div",F,[e("label",M,o(s(t)("auth.inviteCode")),1),p(e("input",{id:"invite","onUpdate:modelValue":a[3]||(a[3]=l=>h.value=l),type:"text",class:"auth-input",placeholder:s(t)("auth.requiredPlaceholder"),autocomplete:"off",onKeydown:f(_,["enter"])},null,40,O),[[m,h.value,void 0,{trim:!0}]])]),e("button",{class:"auth-button",disabled:v.value,onClick:_},o(s(t)("auth.register")),9,R),e("div",q,o(r.value),1),e("div",H,[T(o(s(t)("auth.haveAccount")),1),e("a",J,o(s(t)("auth.backToLogin")),1)])])]))}});k(L).mount("#auth-app");
|