1import{r as t,j as e}from"./vendor-react-BkWLR9PR.js";import{x as b,s as l,N as y,h as N}from"./App-jXw41g3D.js";import{I as d}from"./input-DDQXMVyX.js";import{L as u}from"./label-BH27gaRT.js";import{C as m,a as h,b as C,c as P}from"./card-B8pJHVim.js";import{f as S}from"./index-CodvD9Ju.js";import"./vendor-data-COKcWcoz.js";import"./index-Bs55fO_U.js";import"./vendor-motion-Cua4MH-i.js";function q(){const[r,f]=t.useState(""),[n,p]=t.useState(""),[i,c]=t.useState(!1),[x,o]=t.useState(!1),g=S(),{toast:a}=b();t.useEffect(()=>{window.location.hash.includes("type=recovery")&&o(!0);const{data:{subscription:j}}=l.auth.onAuthStateChange(v=>{v==="PASSWORD_RECOVERY"&&o(!0)});return()=>j.unsubscribe()},[]);const w=async()=>{if(r.length<8){a({title:"Fehler",description:"Passwort muss mindestens 8 Zeichen lang sein.",variant:"destructive"});return}if(r!==n){a({title:"Fehler",description:"Passwörter stimmen nicht überein.",variant:"destructive"});return}c(!0);const{error:s}=await l.auth.updateUser({password:r});s?a({title:"Fehler",description:s.message,variant:"destructive"}):(a({title:"Passwort geändert",description:"Du wirst zum Admin-Bereich weitergeleitet."}),setTimeout(()=>g("/admin"),1500)),c(!1)};return x?e.jsx("div",{className:"min-h-screen flex items-center justify-center bg-background p-4",children:e.jsxs(m,{className:"w-full max-w-md",children:[e.jsxs(C,{className:"text-center",children:[e.jsx("div",{className:"mx-auto mb-4 h-12 w-12 rounded-full bg-primary/10 flex items-center justify-center",children:e.jsx(y,{className:"h-6 w-6 text-primary"})}),e.jsx(P,{className:"font-display text-2xl",children:"Neues Passwort setzen"})]}),e.jsx(h,{children:e.jsxs("form",{onSubmit:s=>{s.preventDefault(),w()},className:"space-y-4",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsx(u,{children:"Neues Passwort"}),e.jsx(d,{type:"password",value:r,onChange:s=>f(s.target.value),required:!0,minLength:8})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(u,{children:"Passwort bestätigen"}),e.jsx(d,{type:"password",value:n,onChange:s=>p(s.target.value),required:!0})]}),e.jsx(N,{type:"submit",className:"w-full",disabled:i,children:i?"Speichern...":"Passwort ändern"})]})})]})}):e.jsx("div",{className:"min-h-screen flex items-center justify-center bg-background p-4",children:e.jsx(m,{className:"w-full max-w-md",children:e.jsx(h,{className:"text-center py-8 text-muted-foreground",children:"Ungültiger oder abgelaufener Reset-Link. Bitte fordere einen neuen an."})})})}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.