"use client"; import { useState } from "react"; import { AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogTitle, } from "@/components/ui/alert-dialog"; import { useToast } from "@/components/ui/use-toast"; import type { AdminUserData } from "@/lib/services/admin.service"; interface DeleteUserDialogProps { user: AdminUserData; open: boolean; onOpenChange: (open: boolean) => void; onSuccess: () => void; } export function DeleteUserDialog({ user, open, onOpenChange, onSuccess, }: DeleteUserDialogProps) { const [isLoading, setIsLoading] = useState(false); const { toast } = useToast(); const handleDelete = async () => { setIsLoading(true); try { const response = await fetch(`/api/admin/users/${user.id}`, { method: "DELETE", }); if (!response.ok) { const data = await response.json(); throw new Error(data.error || "Erreur lors de la suppression"); } toast({ title: "Succès", description: "L'utilisateur a été supprimé", }); onSuccess(); } catch (error) { toast({ variant: "destructive", title: "Erreur", description: error instanceof Error ? error.message : "Une erreur est survenue", }); setIsLoading(false); } }; return ( Êtes-vous sûr? Vous allez supprimer l'utilisateur {user.email}.
Cette action est irréversible et supprimera également :
  • Sa configuration Komga
  • Ses préférences
  • Ses favoris ({user._count?.favorites || 0})
Annuler {isLoading ? "Suppression..." : "Supprimer"}
); }