@ackplus/react-tanstack-data-table
Version:
A powerful React data table component built with MUI and TanStack Table
55 lines (54 loc) • 1.81 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.DataTableProvider = DataTableProvider;
exports.useDataTableContext = useDataTableContext;
const jsx_runtime_1 = require("react/jsx-runtime");
const react_1 = require("react");
const DataTableContext = (0, react_1.createContext)(null);
function DataTableProvider({ children, table, apiRef, dataMode, tableSize, onTableSizeChange, customColumnsFilter, onChangeCustomColumnsFilter, slots = {}, slotProps = {}, isExporting, exportController, onCancelExport, exportFilename, onExportProgress, onExportComplete, onExportError, onServerExport, }) {
const value = (0, react_1.useMemo)(() => ({
table,
apiRef,
dataMode,
tableSize,
onTableSizeChange,
customColumnsFilter,
onChangeCustomColumnsFilter,
slots,
slotProps,
isExporting,
exportController,
onCancelExport,
exportFilename,
onExportProgress,
onExportComplete,
onExportError,
onServerExport,
}), [
table,
apiRef,
dataMode,
tableSize,
onTableSizeChange,
customColumnsFilter,
onChangeCustomColumnsFilter,
slots,
slotProps,
isExporting,
exportController,
onCancelExport,
exportFilename,
onExportProgress,
onExportComplete,
onExportError,
onServerExport,
]);
return ((0, jsx_runtime_1.jsx)(DataTableContext.Provider, { value: value, children: children }));
}
function useDataTableContext() {
const context = (0, react_1.useContext)(DataTableContext);
if (!context) {
throw new Error('useDataTableContext must be used within a DataTableProvider');
}
return context;
}