1import{j as e}from"./mui-DO0ZjxHu.js";import{q as I,u as R,r as a,L as b}from"./react-vendor-DboxtvDn.js";import{A as q,k as N,a3 as M,bV as B,bp as w,bW as D,a4 as $,bA as S,l as G}from"./index-D_rdfsZe.js";import{P as K,i as k,I as U}from"./ImageHeader-XunDBJ4Y.js";function Q(){const[x]=I(),i=x.get("token"),C=x.get("role"),y=R(),{updateUser:P}=a.useContext(q),[j,c]=a.useState({status:"loading"}),[n,L]=a.useState(null),[s,A]=a.useState(""),[r,E]=a.useState(""),[l,f]=a.useState(!1),[g,d]=a.useState(""),[F,H]=a.useState(!1),[m,p]=a.useState(!1);a.useEffect(()=>{if(!i){c({status:"invalid"});return}N.get(`/auth/activation-token/${i}`).then(t=>{t.data?.valid?(L(t.data),c({status:"valid"})):c({status:"invalid"})}).catch(()=>c({status:"invalid"}))},[i]),a.useEffect(()=>{p(s&&r?s!==r:!1)},[s,r]);const v=n?.role||C,h=n?.agencyName,z=n?.partnerName||"REBS",u=v==="agent"?{title:"Bun venit pe HomeDirect",agencyLine:h?`${h} te-a adÄugat în echipÄ`:null,subtitle:"SeteazÄ-Èi o parolÄ pentru a începe sÄ gestionezi anunÈurile."}:{title:"Bun venit pe HomeDirect",agencyLine:h||null,subtitle:`AnunÈurile tale din ${z} sunt deja importate. SeteazÄ o parolÄ pentru a le gestiona aici.`},T=async t=>{if(t.preventDefault(),!!i){if(s!==r){p(!0);return}if(!k(s)){d("Parola trebuie sÄ aibÄ minim 8 caractere Èi sÄ includÄ litere mari, mici Èi cifre.");return}f(!0),d("");try{const o=await N.post("/auth/activate-account",{token:i,password:s});o.data?.user&&P(o.data.user),H(!0),setTimeout(()=>y("/profile"),1800)}catch(o){G.error(o),d(o.response?.data?.message||"Nu am putut activa contul. Linkul poate fi expirat.")}finally{f(!1)}}};return e.jsxs("div",{className:"activateAccount",children:[e.jsx("div",{className:"formContainer",children:F?e.jsxs("div",{className:"successMessage",children:[e.jsx("div",{className:"icon",children:e.jsx(M,{})}),e.jsx("h1",{children:"Cont activat"}),e.jsx("p",{children:"Te redirecÈionÄm cÄtre dashboard..."})]}):j.status==="loading"?e.jsx("div",{className:"loadingState",children:e.jsx("p",{children:"Se verificÄ linkul..."})}):j.status==="invalid"?e.jsxs("div",{className:"tokenError",children:[e.jsx("div",{className:"icon",children:e.jsx(B,{})}),e.jsx("h1",{children:"Link expirat sau invalid"}),e.jsxs("p",{children:["Acest link de activare nu mai este valabil. ContacteazÄ echipa noastrÄ la"," ",e.jsx("a",{href:"mailto:[email protected]",children:"[email protected]"})," pentru un nou link."]}),e.jsxs(b,{to:"/login",className:"backToLogin",children:[e.jsx(w,{})," Ãnapoi la login"]})]}):e.jsxs("form",{onSubmit:T,children:[e.jsxs("div",{className:"welcomeHeader",children:[e.jsx("div",{className:"welcomeIcon",children:v==="agent"?e.jsx(D,{}):e.jsx($,{})}),e.jsx("h1",{children:u.title}),u.agencyLine&&e.jsx("p",{className:"agencyLine",children:u.agencyLine}),e.jsx("p",{children:u.subtitle}),n?.email&&e.jsxs("p",{className:"emailHint",children:["Cont: ",e.jsx("strong",{children:n.email})]})]}),e.jsxs("div",{className:"inputGroup",children:[e.jsxs("label",{htmlFor:"password",children:[e.jsx(S,{})," ParolÄ nouÄ"]}),e.jsx("input",{id:"password",name:"password",type:"password",value:s,onChange:t=>A(t.target.value),placeholder:"Minim 8 caractere",required:!0,autoComplete:"new-password",disabled:l}),s&&e.jsx(K,{password:s})]}),e.jsxs("div",{className:"inputGroup",children:[e.jsxs("label",{htmlFor:"confirmPassword",children:[e.jsx(S,{})," ConfirmÄ parola"]}),e.jsx("input",{id:"confirmPassword",name:"confirmPassword",type:"password",value:r,onChange:t=>E(t.target.value),placeholder:"RepetÄ parola",required:!0,autoComplete:"new-password",disabled:l,className:m?"mismatch":""}),m&&e.jsx("span",{className:"passwordHint error",children:"Parolele nu coincid."})]}),g&&e.jsx("span",{className:"error",children:g}),e.jsx("button",{type:"submit",disabled:l||m||!k(s),children:l?"Se activeazÄ...":"ActiveazÄ contul"}),e.jsxs(b,{to:"/login",className:"backToLogin",children:[e.jsx(w,{})," Ãnapoi la login"]})]})}),e.jsx(U,{})]})}export{Q as default};
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.