"use client";

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

export function DeleteChambreButton({
  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 deleteChambre(id);
        if (result?.error) {
          toast.error(result.error);
        } else {
          toast.success("Chambre supprimée");
          router.push("/chambres");
        }
        resolve();
      });
    });
  }

  return (
    <ConfirmButton
      variant="destructive"
      size="sm"
      title="Supprimer cette chambre ?"
      description="Cette action est irréversible. Toutes les données associées seront perdues."
      confirmLabel="Oui, supprimer"
      onConfirm={handleDelete}
      disabled={pending}
    >
      {children}
    </ConfirmButton>
  );
}
