"use client";
import {
AlertDialog,
AlertDialogCancel,
AlertDialogContent,
AlertDialogDescription,
AlertDialogFooter,
AlertDialogHeader,
AlertDialogTitle,
AlertDialogTrigger,
} from "@/components/ui/alert-dialog";
import { Button } from "@/components/ui/button";
import { useState } from "react";
import { MdDeleteOutline } from "react-icons/md";
import { cn } from "@/lib/utils";
import { trpc } from "@/app/_trpc/client"
const AlertDeleteTask = ({ selectedTask }: { selectedTask: any }) => {
const [open, setOpen] = useState(false);
const utils = trpc.useUtils();
const { mutate: deleteTask, isPending } = trpc.tasks.deleteTask.useMutation({
onSuccess: () => {
setOpen(false);
const currentProjectId = selectedTask?.projectId
utils.tasks.getProjectTasks.invalidate();
if (!currentProjectId) return;
utils.projects.getProjectById.invalidate(currentProjectId);
},
});
return (
<AlertDialog open={open} onOpenChange={setOpen}>
<AlertDialogTrigger>
<MdDeleteOutline
className={cn(
"text-2xl text-red-600",
selectedTask?.status !== "no iniciada" &&
selectedTask?.status !== "cancelada" &&
"text-gray-600"
)}
/>
</AlertDialogTrigger>
<AlertDialogContent>
<AlertDialogHeader>
<AlertDialogTitle>
Seguro que desea eliminar este articulo?
</AlertDialogTitle>
<AlertDialogDescription>
Esta accion no puede ser reversible, y será borrada permanentemente.
</AlertDialogDescription>
{selectedTask?.status !== "no iniciada" &&
selectedTask?.status !== "cancelada" && (
<p className="text-red-500 text-md font-medium">
No se puede eliminar una tarea una vez ha iniciado o no se ha
cancelado
</p>
)}
</AlertDialogHeader>
<AlertDialogFooter>
<AlertDialogCancel>Cancel</AlertDialogCancel>
<Button
disabled={
selectedTask?.status !== "no iniciada" &&
selectedTask?.status !== "cancelada"
}
onClick={() => {
deleteTask({ value: selectedTask?.id! });
}}
>
{isPending ? "Eliminando" : "Eliminar"}
</Button>
</AlertDialogFooter>
</AlertDialogContent>
</AlertDialog>
);
};
export default AlertDeleteTask;