"use client";

import { useTransition } from "react";
import { useRouter } from "next/navigation";
import { toast } from "sonner";
import { ConfirmButton } from "@/components/ui/confirm-button";
import { deleteUser } from "@/actions/utilisateurs";

export function DeleteUserButton({
  id,
  children,
}: {
  id: string;
  children: React.ReactNode;
}) {
  const router = useRouter();
  const [pending, startTransition] = useTransition();

  function handleDelete() {
    return new Promise<void>((resolve) => {
      startTransition(async () => {
        const result = await deleteUser(id);
        if (result?.error) toast.error(result.error);
        else {
          toast.success("Utilisateur supprimé");
          router.push("/utilisateurs");
        }
        resolve();
      });
    });
  }

  return (
    <ConfirmButton
      variant="destructive"
      size="sm"
      title="Supprimer cet utilisateur ?"
      description="Cette action est irréversible."
      onConfirm={handleDelete}
      disabled={pending}
    >
      {children}
    </ConfirmButton>
  );
}
