veza/apps/web/dist_verification/assets/VerifyEmailPage-38fQWUYS.js

1 line
3.9 KiB
JavaScript

import{a as t,j as e}from"./vendor-react-BHG7lGYR.js";import{c as k,u as N}from"./vendor-router-D-s5vIeO.js";import{A as c,a as g}from"./AuthButton-ByJY1yM3.js";import{x as V}from"./index-BWcMVITa.js";import"./vendor-IYr-MHu4.js";import"./vendor-tanstack-BzWBL1hV.js";import"./vendor-utils-CgOSfOkx.js";import"./vendor-icons-DaGlTw4_.js";function T(){const[d]=k(),u=N(),[n,o]=t.useState("verifying"),[l,s]=t.useState("Vérification de votre email en cours..."),[j,m]=t.useState(!1),[f,v]=t.useState(!1),[a,x]=t.useState(0),i=t.useRef(null),[p,b]=t.useState(null);t.useEffect(()=>{const r=d.get("token");r?(b(r),h(r)):(o("error"),s("Lien de vérification invalide ou manquant"))},[d]),t.useEffect(()=>()=>{i.current&&clearInterval(i.current)},[]),t.useEffect(()=>(a>0?i.current=setInterval(()=>{x(r=>r<=1?(i.current&&clearInterval(i.current),0):r-1)},1e3):i.current&&(clearInterval(i.current),i.current=null),()=>{i.current&&clearInterval(i.current)}),[a]),t.useEffect(()=>{if(n==="success"){const r=setTimeout(()=>{u("/login",{replace:!0})},3e3);return()=>clearTimeout(r)}},[n,u]);const h=async r=>{try{m(!0),o("verifying"),s("Vérification de votre email en cours..."),await verifyEmail(r),o("success"),s("Votre email a été vérifié avec succès !")}catch(y){o("error"),s(y.message||"La vérification a échoué")}finally{m(!1)}},E=async()=>{if(!(a>0||f))try{v(!0);const r=localStorage.getItem("pendingVerificationEmail");if(!r){s("Email non trouvé. Veuillez vous réinscrire ou contacter le support.");return}await V.resendVerification({email:r}),x(60),s("Email de vérification envoyé ! Veuillez vérifier votre boîte mail.")}catch(r){s(r.message||"Échec de l'envoi de l'email")}finally{v(!1)}};return n==="verifying"?e.jsx(c,{title:"Vérification de l'email",subtitle:"Vérification en cours...",footerLinks:[{label:"Retour à la connexion",to:"/login"}],children:e.jsxs("div",{className:"text-center space-y-4",role:"status","aria-live":"polite","aria-busy":"true",children:[e.jsx("div",{className:"flex justify-center","aria-hidden":"true",children:e.jsx("div",{className:"animate-spin rounded-full h-12 w-12 border-b-2 border-kodo-steel"})}),e.jsx("p",{className:"text-kodo-content-dim",children:l}),e.jsx("span",{className:"sr-only",children:"Vérification de votre email en cours, veuillez patienter"})]})}):n==="success"?e.jsx(c,{title:"Email vérifié",subtitle:"Votre email a été vérifié avec succès",footerLinks:[{label:"Retour à la connexion",to:"/login"}],children:e.jsx("div",{className:"text-center space-y-4",role:"status","aria-live":"polite",children:e.jsxs("div",{className:"bg-kodo-lime/10 border border-kodo-lime text-kodo-lime px-4 py-4 rounded",role:"alert",children:[e.jsx("p",{className:"font-medium",children:"Succès !"}),e.jsx("p",{className:"text-sm mt-1",children:l}),e.jsx("p",{className:"text-xs mt-2 text-kodo-content-dim",children:"Vous allez être redirigé vers la page de connexion..."})]})})}):e.jsx(c,{title:"Vérification de l'email",subtitle:"Une erreur s'est produite",footerLinks:[{label:"Retour à la connexion",to:"/login"}],children:e.jsxs("div",{className:"text-center space-y-4",children:[e.jsxs("div",{className:"bg-kodo-red/10 border border-kodo-red text-kodo-red px-4 py-4 rounded",role:"alert","aria-live":"assertive",children:[e.jsx("p",{className:"font-medium",children:"Erreur"}),e.jsx("p",{className:"text-sm mt-1",children:l})]}),e.jsxs("div",{className:"space-y-2",children:[p&&e.jsx(g,{onClick:()=>h(p),loading:j,type:"button",children:"Réessayer"}),e.jsx(g,{onClick:E,loading:f,disabled:a>0,type:"button",variant:"secondary","aria-label":a>0?`Renvoyer l'email de vérification dans ${a} secondes`:"Renvoyer l'email de vérification",children:a>0?e.jsxs(e.Fragment,{children:[e.jsxs("span",{className:"sr-only",children:["Renvoyer dans ",a," secondes"]}),e.jsxs("span",{"aria-hidden":"true",children:["Renvoyer dans ",a,"s"]})]}):"Renvoyer l'email de vérification"})]})]})})}export{T as VerifyEmailPage,T as default};