Files
starr-philproperties/src/modules/admin/config/tiers/plans/toolbar.config.jsx
T
kennethobsequio fbef7cb6e6 ready to test
Testing

Signed-off-by: Kenneth Obsequio <k80308392@gmail.com>
2026-06-22 10:07:20 +08:00

60 lines
1.5 KiB
React

import { Plus, RefreshCw, Download, Archive } from "lucide-react";
import { exportTableToExcel } from "@/utils/excel.util";
export function buildToolbarActions({
fetchPlans,
pagination,
exportConfig,
navigate,
showArchived,
onToggleArchived,
getFilters,
getSort,
getTableInstance,
}) {
return [
{
key: "refresh",
type: "button",
label: "Refresh",
icon: <RefreshCw className="h-3.5 w-3.5" />,
variant: "outline",
onClick: () => fetchPlans({
page: 1,
limit: pagination?.limit ?? 10,
filters: getFilters(),
sort: getSort(),
archived: showArchived,
}),
},
{
key: "export",
type: "button",
label: "Export",
icon: <Download className="h-3.5 w-3.5" />,
variant: "outline",
onClick: () => exportTableToExcel({
...exportConfig,
tableInstance: getTableInstance(),
}),
},
{
key: "create",
type: "button",
label: "New Plan",
icon: <Plus className="h-3.5 w-3.5" />,
variant: "default",
hidden: showArchived,
onClick: () => navigate("/admin/tiers/plans/add"),
},
{
key: "toggle-archived",
type: "button",
icon: <Archive className="h-3.5 w-3.5" />,
label: showArchived ? "Active Plans" : "Archived Plans",
variant: "secondary",
className: "border border-border",
onClick: onToggleArchived,
},
];
}