import { getClient } from "@/api/AxiosClient"; import { Button } from "@/components/ui/button"; import { Card, CardContent, CardDescription, CardHeader, CardTitle, } from "@/components/ui/card"; import { Dialog, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, DialogTrigger, } from "@/components/ui/dialog"; import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuLabel, DropdownMenuSeparator, DropdownMenuTrigger, } from "@/components/ui/dropdown-menu"; import { toast } from "@/components/ui/use-toast"; import { useCredentialGetter } from "@/hooks/useCredentialGetter"; import { DotsHorizontalIcon, ReloadIcon } from "@radix-ui/react-icons"; import { useMutation, useQueryClient } from "@tanstack/react-query"; import { useState } from "react"; import { useNavigate } from "react-router-dom"; type Props = { workflowId: string; title: string; description: string; url: string; }; function SavedTaskCard({ workflowId, title, url, description }: Props) { const [open, setOpen] = useState(false); const credentialGetter = useCredentialGetter(); const queryClient = useQueryClient(); const navigate = useNavigate(); const deleteTaskMutation = useMutation({ mutationFn: async (id: string) => { const client = await getClient(credentialGetter); return client .delete(`/workflows/${id}`) .then((response) => response.data); }, onError: (error) => { toast({ variant: "destructive", title: "There was an error while deleting the template", description: error.message, }); setOpen(false); }, onSuccess: () => { toast({ title: "Template deleted", description: "Template deleted successfully", }); queryClient.invalidateQueries({ queryKey: ["savedTasks"], }); setOpen(false); navigate("/create"); }, }); return ( {title} Template Actions { setOpen(true); }} > Delete Template Are you absolutely sure? Are you sure you want to delete this task template? {url} { navigate(workflowId); }} > {description} ); } export { SavedTaskCard };