"use client"; import { zodResolver } from "@hookform/resolvers/zod"; import { KeyRound } from "lucide-react"; import { useState } from "react"; import { useForm } from "react-hook-form"; import { z } from "zod"; import { useAuth } from "@/components/auth"; import { apiFetch } from "@/lib/api"; const schema = z.object({ current_password: z.string().min(1, "Aktuelles Passwort erforderlich"), new_password: z.string().min(12, "Mindestens 12 Zeichen"), new_password_confirmation: z.string().min(12, "Mindestens 12 Zeichen") }).refine((values) => values.new_password === values.new_password_confirmation, { path: ["new_password_confirmation"], message: "Die neuen Passwoerter stimmen nicht ueberein" }); type SecurityForm = z.infer; export default function SecurityPage() { const { token, refreshUser } = useAuth(); const [message, setMessage] = useState(""); const form = useForm({ resolver: zodResolver(schema), defaultValues: { current_password: "", new_password: "", new_password_confirmation: "" } }); async function onSubmit(values: SecurityForm) { await apiFetch("/auth/change-password", token ?? "", { method: "POST", body: JSON.stringify(values) }); setMessage("Passwort erfolgreich geaendert"); form.reset(); refreshUser(); } return (

Sicherheit

Hier aenderst du dein Passwort.

{message &&
{message}
}
); }