"use client"; import { useState, useTransition } from "react"; import { AlertTriangle } from "lucide-react"; import { toast } from "sonner"; import { signOut } from "next-auth/react"; import { Button } from "@/components/ui/button"; import { Dialog, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, DialogTrigger, } from "@/components/ui/dialog"; import { Input } from "@/components/ui/input"; import { deleteMyAccount } from "../actions"; export function DeleteAccountDialog() { const [open, setOpen] = useState(false); const [confirmText, setConfirmText] = useState(""); const [isPending, startTransition] = useTransition(); const isConfirmed = confirmText === "DELETE"; const handleDelete = () => { if (!isConfirmed) return; startTransition(async () => { const res = await deleteMyAccount(); if (res.error) { toast.error(res.error); } else { toast.success("Account wurde gelöscht. Du wirst abgemeldet..."); // Sign out client-side and redirect to landing page await signOut({ callbackUrl: "/" }); } }); }; return ( Gefahrenzone: Account löschen Diese Aktion kann nicht{" "} rückgängig gemacht werden. Wenn du das letzte Elternteil im Haushalt bist, wird die gesamte Familie inklusive Kinder gelöscht. Gibt es ein weiteres Elternteil, bleibt der Haushalt für diese Person erhalten und nur dein Account wird entfernt.
Bitte tippe DELETE in das Feld unten ein, um den Vorgang zu bestätigen.
setConfirmText(e.target.value)} placeholder="DELETE" className="border-[var(--danger)] focus-visible:ring-[var(--focus-ring)]" />
); }