"use client"; import { DotsHorizontalIcon } from "@radix-ui/react-icons"; import { Row } from "@tanstack/react-table"; import { Button } from "@/components/ui/button"; import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, } from "@/components/ui/dropdown-menu"; import { Trash } from "lucide-react"; import { useParams } from "next/navigation"; import { useRouter } from "next/navigation"; import { taskSchema } from "@/components/task-table/schema"; interface DataTableRowActionsProps<TData> { row: Row<TData>; } export function DataTableRowActions<TData>({ row, }: DataTableRowActionsProps<TData>) { const task = taskSchema.parse(row.original); const params = useParams(); const router = useRouter(); async function deleteTask() { try { const data = await fetch( `/w/${params.workspaceID}/p/${params.projectID}/tasks/delete`, { method: "DELETE", body: JSON.stringify({ id: task.id, }), } ); const res = await data.json(); console.log("DELETE TASK RES ===>", res); router.refresh(); } catch (err) { console.error(err); } } return ( <DropdownMenu> <DropdownMenuTrigger asChild> <Button variant="ghost" className="flex h-8 w-8 p-0 data-[state=open]:bg-muted" > <DotsHorizontalIcon className="h-4 w-4" /> <span className="sr-only">Open menu</span> </Button> </DropdownMenuTrigger> <DropdownMenuContent align="end" className="w-[160px]"> <DropdownMenuItem onClick={deleteTask}> <Trash size={16} className="mr-2 text-muted-foreground" /> Delete </DropdownMenuItem> </DropdownMenuContent> </DropdownMenu> ); }