PageSourceSearch

https://maieutic.ca/assets/MSignInvitationRoute-DxmYHY6K.js

js maieutic.ca collected 2026-10-01 15:03:07 UTC 3,932 bytes, 1 lines download raw bytes

1import{r as n,b as v,j as e,c as k}from"./index-DbENjIaX.js";/* empty css                    */import{d as _,a as x}from"./msign-DxTlVtut.js";import{aw as E,au as j,b5 as z}from"./index-BvanFLXZ.js";import{h as R,N as m,i as w,j as I,M as g}from"./passwordPolicy-MXxTdTD3.js";import{u as q}from"./useCapabilityRouteToken-CK37WbEO.js";function A({token:r}){const[i,p]=n.useState("login"),[o,C]=n.useState(""),[a,h]=n.useState(""),[S,c]=n.useState(!0),[M,l]=n.useState(!1),[f,t]=n.useState(null),[y,N]=n.useState(!1),u=n.useCallback(async()=>{l(!0),t(null);try{await R(r),N(!0)}catch(s){const d=s instanceof Error?s.message:"";t(d==="unauthorized"?"Connectez-vous avec l’adresse qui a reçu l’invitation.":"Cette invitation est invalide, expirée ou liée à une autre adresse.")}finally{l(!1),c(!1)}},[r]);n.useEffect(()=>{let s=!0;return v.getSession().then(({data:d})=>{if(s){if(d.session)return u();c(!1)}}).catch(()=>{s&&c(!1)}),()=>{s=!1}},[u]);const b=async()=>{if(i==="register"&&!w(a)){t(m);return}if(i==="login"&&!a){t("Saisissez votre mot de passe.");return}l(!0),t(null);try{if(i==="register"){await I({invitationToken:r,email:o.trim(),password:a}),h(""),p("login"),t("Confirmez votre courriel, puis rouvrez ce lien pour accepter l’invitation.");return}const s=await v.signInWithPassword(o.trim(),a);if(s.error)throw s.error;await u()}catch(s){s instanceof g&&s.code==="msign_signup_account_exists"?t("Ce courriel possède déjà un compte. Connectez-vous pour accepter l’invitation."):s instanceof g&&s.code==="msign_signup_rate_limited"?t("Trop de tentatives. Réessayez dans quelques minutes."):s instanceof g&&s.code==="msign_signup_weak_password"?t(m):t("Connexion impossible. Vérifiez votre adresse et votre mot de passe.")}finally{l(!1),c(!1)}};return S||M?e.jsx("main",{className:"msign-auth-root",children:e.jsx(_,{kind:"loading",title:"Vérification de l’invitation…"})}):y?e.jsx("main",{className:"msign-auth-root",children:e.jsxs("section",{className:"msign-auth-card",children:[e.jsxs("span",{className:"msign-auth-eyebrow",children:[e.jsx(E,{"aria-hidden":"true"})," Invitation vérifiée"]}),e.jsx("h1",{children:"Bienvenue dans M-Sign"}),e.jsx("p",{children:"Votre accès M-Sign est actif. Cette invitation ne vous donne aucun accès automatique à Maieutic Recrutement."}),e.jsxs(x,{tone:"primary",onClick:()=>{window.location.href="/m-sign"},children:["Ouvrir M-Sign ",e.jsx(j,{"aria-hidden":"true"})]})]})}):e.jsx("main",{className:"msign-auth-root",children:e.jsxs("section",{className:"msign-auth-card",children:[e.jsxs("div",{className:"msign-auth-brand",children:[e.jsx("span",{children:"M"}),e.jsx("strong",{children:"M-Sign"})]}),e.jsx("h1",{children:i==="login"?"Accepter l’invitation":"Créer votre compte"}),e.jsx("p",{children:"Utilisez exactement l’adresse courriel qui a reçu l’invitation."}),f?e.jsx("div",{className:"msign-notice",role:"status",children:f}):null,e.jsxs("label",{className:"msign-field",children:[e.jsx("span",{children:"Courriel"}),e.jsx("input",{type:"email",autoComplete:"email",value:o,onChange:s=>C(s.target.value)})]}),e.jsxs("label",{className:"msign-field",children:[e.jsx("span",{children:"Mot de passe"}),e.jsx("input",{type:"password",autoComplete:i==="login"?"current-password":"new-password",value:a,onChange:s=>h(s.target.value)}),i==="register"?e.jsx("small",{children:m}):null]}),e.jsxs(x,{tone:"primary",onClick:()=>void b(),disabled:!o.includes("@")||(i==="login"?a.length===0:!w(a)),children:[i==="login"?e.jsx(j,{"aria-hidden":"true"}):e.jsx(z,{"aria-hidden":"true"}),i==="login"?"Se connecter et accepter":"Créer et accepter"]}),e.jsx("button",{type:"button",className:"msign-auth-switch",onClick:()=>p(s=>s==="login"?"register":"login"),children:i==="login"?"Créer un compte M-Sign":"J’ai déjà un compte"})]})})}const W=()=>{const{token:r=""}=k(),i=q("invite",r);return e.jsx(A,{token:i})};export{W as MSignInvitationRoute};

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.