"use client" import { useAuthApi } from "@/shared/useApi" import { useRouter } from "next/navigation" import { Button } from "@/shared/components/ui/button" import { Dialog, DialogContent, DialogHeader, DialogTitle } from "@/shared/components/ui/dialog" import { ScrollArea } from "@/shared/components/ui/scroll-area" import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigger, } from "@/shared/components/ui/dropdown-menu" import { Ellipsis, Pencil, Power, Trash2 } from "lucide-react" import { confirm } from "@/shared/components/confirm-dialog" import { toast } from "sonner" import { useFormDialog } from "@/shared/components/form-dialog" import { VendorForm } from "./vendor-form" type VendorActionsProps = { vendorId: string isActive?: boolean } export function VendorActions({ vendorId, isActive }: VendorActionsProps) { const api = useAuthApi() const router = useRouter() const editDialog = useFormDialog("vendor-details-edit") const handleDelete = async () => { const confirmed = await confirm({ title: "Delete Vendor", description: "Are you sure you want to delete this vendor? This action cannot be undone.", confirmLabel: "Delete", variant: "destructive", }) if (!confirmed) return try { await api.vendors.destroy(vendorId) toast.success("Vendor deleted successfully.") router.push("/purchase/vendor") } catch { toast.error("Failed to delete vendor.") } } const handleToggleStatus = async () => { try { await api.vendors.toggleStatus({ id: Number(vendorId) } as any) toast.success(isActive ? "Vendor deactivated." : "Vendor activated.") router.refresh() } catch { toast.error("Failed to update vendor status.") } } return ( <> editDialog.open(vendorId)}> Edit {isActive ? "Deactivate" : "Activate"} Delete { if (!v) editDialog.close() }}> Edit Vendor { editDialog.close() router.refresh() }} /> ) }