"use client" import * as React from "react" import { type Table } from "@tanstack/react-table" import { Download, FileDown, Upload } from "lucide-react" import { exportTableToExcel } from "@/lib/export" import { Button } from "@/components/ui/button" import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigger, } from "@/components/ui/dropdown-menu" import { AddCandidateDialog } from "./add-candidates-dialog" import { DeleteCandidatesDialog } from "./delete-candidates-dialog" import { InviteCandidatesDialog } from "./invite-candidates-dialog" import { ImportVendorCandidatesButton } from "./import-button" import { exportVendorCandidateTemplate } from "./excel-template-download" import { VendorCandidatesWithVendorInfo } from "@/db/schema/vendors" interface CandidatesTableToolbarActionsProps { table: Table } export function CandidatesTableToolbarActions({ table }: CandidatesTableToolbarActionsProps) { const selectedRows = table.getFilteredSelectedRowModel().rows const hasSelection = selectedRows.length > 0 const [refreshKey, setRefreshKey] = React.useState(0) // Handler to refresh the table after import const handleImportSuccess = () => { // Trigger a refresh of the table data setRefreshKey(prev => prev + 1) } return (
{/* Show actions only when rows are selected */} {hasSelection ? ( <> {/* Invite dialog - new addition */} row.original)} onSuccess={() => table.toggleAllRowsSelected(false)} /> {/* Delete dialog */} row.original)} onSuccess={() => table.toggleAllRowsSelected(false)} /> ) : null} {/* Add new candidate dialog */} {/* Import Excel button */} {/* Export dropdown menu */} { exportTableToExcel(table, { filename: "vendor-candidates", excludeColumns: ["select", "actions"], useGroupHeader: false, }) }} > Export Current Data Download Template
) }