"use client"; import { EllipsisVertical } from "lucide-react"; import { useRouter } from "next/navigation"; import { useState } from "react"; import { toast } from "sonner"; import { useDeleteDocument } from "@/app/api/mutations/useDeleteDocument"; import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigger, } from "@/components/ui/dropdown-menu"; import { DeleteConfirmationDialog } from "./delete-confirmation-dialog"; import { Button } from "./ui/button"; interface KnowledgeActionsDropdownProps { filename: string; } export const KnowledgeActionsDropdown = ({ filename, }: KnowledgeActionsDropdownProps) => { const [showDeleteDialog, setShowDeleteDialog] = useState(false); const deleteDocumentMutation = useDeleteDocument(); const router = useRouter(); const handleDelete = async () => { try { await deleteDocumentMutation.mutateAsync({ filename }); toast.success(`Successfully deleted "${filename}"`); setShowDeleteDialog(false); } catch (error) { toast.error( error instanceof Error ? error.message : "Failed to delete document", ); } }; return ( <> { router.push( `/knowledge/chunks?filename=${encodeURIComponent(filename)}`, ); }} > View chunks {/* //TODO: Implement rename and sync */} {/* alert("Not implemented")} > Rename alert("Not implemented")} > Sync */} setShowDeleteDialog(true)} > Delete ); };