// ─── config/toolbar.config.jsx ──────────────────────────────────────────────── import { RefreshCw, Download, FolderPlus, Archive } from "lucide-react"; import { exportTableToExcel } from "@/utils/excel.util"; /** * @param {Object} deps * @param {Function} deps.fetchUsers Refetch handler from useUsers * @param {Object} deps.pagination Current pagination state * @param {Object} deps.exportConfig { allData, attributes, filename, sheetName } * @param {Function} deps.navigate React Router navigate */ export function buildToolbarActions({ fetchGroups, pagination, exportConfig, onAddGroup, navigate, getFilters, getSort, getTableInstance }) { return [ { key: "refresh", type: "button", icon: , label: "Refresh", onClick: () => fetchGroups({ page: 1, limit: pagination.limit, filters: getFilters(), sort: getSort() }), }, { key: "export", type: "button", icon: , label: "Export", onClick: (table) => exportTableToExcel({ ...exportConfig, tableInstance: table ?? getTableInstance() }), }, { key: "add-group", type: "button", icon: , label: "Add Group", variant: "default", className: "text-primary-foreground", onClick: () => onAddGroup(), }, { key: "archived-groups", type: "button", icon: , label: "Archived Groups", variant: "secondary", className: "border border-border", onClick: () => navigate("/admin/users/groups/archived"), }, ]; }