PageSourceSearch

https://www.comparasoftware.es/assets/restablecer-contrasena-kvfKTOg2.js

js comparasoftware.es collected 2026-10-07 03:30:35 UTC 3,758 bytes, 1 lines download raw bytes

1import{u as R,r as o,s as n,j as e,L as C}from"./index-C3d5HdaJ.js";import{a as I,M as P}from"./MainLayout-ZQnzo2EY.js";import{B as _}from"./button-CyyIW425.js";import{I as j}from"./input-C_x6iAPK.js";import{L as N}from"./label-DBO1KiaS.js";import"./comparasoftware-logo.svg.asset-CKrCAE1b.js";import"./createLucideIcon-DjlMPdEJ.js";import"./search-ANSmqA0E.js";import"./loader-circle-CqT5P7rn.js";import"./chevron-down-BrdqvOiA.js";import"./tag-BOrvUFvY.js";import"./mail-5wc9359l.js";import"./chevron-up-CPsGuAQ-.js";import"./x-DWZd_TJ9.js";import"./globe-D1do3Y5L.js";import"./s3Upload-DnYhnc8t.js";import"./use-toast-6nnrf216.js";import"./index-BpWUEdEw.js";import"./utils-DMHpy-pb.js";function $(){const b=R(),{language:y}=I(),a=y==="pt"?{h:"Nova senha",pw:"Nova senha",pw2:"Repita a senha",save:"Salvar senha",saving:"Salvando...",checking:"Verificando o link...",invalid:"O link é inválido ou expirou. Solicite um novo.",again:"Solicitar novo link",short:"A senha deve ter pelo menos 8 caracteres.",diff:"As senhas não coincidem.",fail:"Não foi possível alterar a senha: "}:{h:"Nueva contraseña",pw:"Nueva contraseña",pw2:"Repite la contraseña",save:"Guardar contraseña",saving:"Guardando...",checking:"Verificando el enlace...",invalid:"El enlace no es válido o expiró. Solicita uno nuevo.",again:"Solicitar un nuevo enlace",short:"La contraseña debe tener al menos 8 caracteres.",diff:"Las contraseñas no coinciden.",fail:"No se pudo cambiar la contraseña: "},[m,x]=o.useState("checking"),[l,k]=o.useState(""),[g,L]=o.useState(""),[w,d]=o.useState(null),[S,h]=o.useState(!1);o.useEffect(()=>{let t=!1;const s=()=>{t=!0,x("ready")},{data:u}=n.auth.onAuthStateChange((c,f)=>{(c==="PASSWORD_RECOVERY"||f&&c==="SIGNED_IN")&&s()}),p=window.location.hash,r=new URLSearchParams(window.location.search),i=/access_token|type=recovery/.test(p)||r.has("code");return(async()=>{const c=r.get("code");if(c){const{error:v}=await n.auth.exchangeCodeForSession(c);if(!v)return s()}const{data:f}=await n.auth.getSession();if(f.session&&i)return s();setTimeout(async()=>{if(t)return;const{data:v}=await n.auth.getSession();v.session&&i?s():x("invalid")},2500)})(),()=>u.subscription.unsubscribe()},[]);async function E(t){if(t.preventDefault(),d(null),l.length<8)return d(a.short);if(l!==g)return d(a.diff);h(!0);const{data:s,error:u}=await n.auth.updateUser({password:l});if(u)return h(!1),d(a.fail+u.message);let p="/";const r=s.user?.id;if(r){const{data:i}=await n.from("user_roles").select("role").eq("user_id",r).in("role",["admin","editor","provider","partner"]);i&&i.length>0&&(p="/admin")}h(!1),b({to:p})}return e.jsx(P,{children:e.jsxs("section",{className:"mx-auto w-full max-w-md px-4 py-16",children:[e.jsx("h1",{className:"mb-6 text-3xl font-bold text-global-azul-dark",children:a.h}),m==="checking"&&e.jsx("p",{className:"text-sm text-global-gris-5",children:a.checking}),m==="invalid"&&e.jsxs("div",{className:"space-y-4",children:[e.jsx("p",{className:"text-sm text-destructive",children:a.invalid}),e.jsx(C,{to:"/recuperar-contrasena",className:"text-global-azul underline text-sm",children:a.again})]}),m==="ready"&&e.jsxs("form",{onSubmit:E,className:"space-y-4",children:[e.jsxs("div",{children:[e.jsx(N,{htmlFor:"pw",children:a.pw}),e.jsx(j,{id:"pw",type:"password",autoComplete:"new-password",minLength:8,required:!0,value:l,onChange:t=>k(t.target.value)})]}),e.jsxs("div",{children:[e.jsx(N,{htmlFor:"pw2",children:a.pw2}),e.jsx(j,{id:"pw2",type:"password",autoComplete:"new-password",minLength:8,required:!0,value:g,onChange:t=>L(t.target.value)})]}),w&&e.jsx("p",{className:"text-sm text-destructive",children:w}),e.jsx(_,{type:"submit",disabled:S,className:"w-full",children:S?a.saving:a.save})]})]})})}export{$ as component};

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.