PageSourceSearch

https://www.homedirect.ro/assets/js/ActivateAccount-DjmbUIhd.js

js homedirect.ro collected 2026-10-02 01:08:40 UTC 4,024 bytes, 1 lines download raw bytes

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.