"use client"; import { useActionState, useEffect, useState, useTransition } from "react"; import { AlertTriangle, Download, Loader2, Trash2 } from "lucide-react"; import { toast } from "sonner"; import { Button } from "@/components/ui/button"; import { Card, CardContent, CardDescription, CardHeader, CardTitle } from "@/components/ui/card"; import { Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, } from "@/components/ui/dialog"; import { Input } from "@/components/ui/input"; import { Label } from "@/components/ui/label"; import { deleteWorkspaceAction, initialDeleteWorkspaceState, } from "@/lib/appwrite/account-delete-actions"; export function DangerZone({ companyName }: { companyName: string }) { const [downloadBusy, startDownload] = useTransition(); const [open, setOpen] = useState(false); const [confirm, setConfirm] = useState(""); const [state, action, pending] = useActionState( deleteWorkspaceAction, initialDeleteWorkspaceState, ); useEffect(() => { if (state.error) toast.error(state.error); }, [state]); function downloadExport() { startDownload(async () => { try { const res = await fetch("/api/account/export"); if (!res.ok) throw new Error(`HTTP ${res.status}`); const blob = await res.blob(); const url = URL.createObjectURL(blob); const a = document.createElement("a"); a.href = url; a.download = `dls-export-${Date.now()}.json`; document.body.appendChild(a); a.click(); a.remove(); URL.revokeObjectURL(url); toast.success("Veri dışa aktarıldı."); } catch (e) { toast.error(e instanceof Error ? e.message : "İndirilemedi."); } }); } return ( Tehlikeli Bölge Verinizi dışa aktarın veya çalışma alanını kalıcı olarak silin.

Verilerimi indir

Çalışma alanınızdaki tüm veriler (hastalar, işler, ödemeler, geçmiş) JSON formatında dışa aktarılır. Silmeden önce yedek almanız önerilir.

Çalışma alanını sil

Tüm hastalar, işler, ödemeler, dosyalar ve geçmiş kalıcı olarak silinir. Bu işlem geri alınamaz.

Çalışma alanını kalıcı sil Onaylamak için aşağıya {companyName} yazın. Bu işlem hastalar, işler, ödemeler, dosyalar ve tüm geçmişi içerir ve geri alınamaz.
setConfirm(e.target.value)} placeholder={companyName} />
); }