mirror of
https://github.com/SkalaraAI/skbeta.git
synced 2025-04-21 12:50:18 -04:00
76 lines
1.9 KiB
TypeScript
76 lines
1.9 KiB
TypeScript
"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>
|
|
);
|
|
}
|