@mrii/react-table-builder
Version:
library to easily build tables using MUI grid
37 lines (33 loc) • 1.43 kB
JavaScript
;
var jsxRuntime = require('react/jsx-runtime');
var react = require('react');
var index = require('../../utils/create-zustand-context/index.js');
var index$1 = require('../../utils/state-setter-handler/index.js');
const [Provider, useTableBuilderColumns] = index.createZustandContext();
const TableBuilderColumnsProvider = ({ name , children })=>/*#__PURE__*/ jsxRuntime.jsx(Provider, {
name: `table-builder-columns - ${name}`,
initialState: react.useMemo(()=>({
columns: []
}), []),
actions: react.useCallback((set, get)=>({
setColumn: index$1.stateSetterHandler(set, 'columns'),
addColumn: (column)=>{
const i = get().columns.findIndex((c)=>c.field === column.field);
if (i !== -1) {
get().setColumn((v)=>{
v[i] = column;
return v;
});
} else {
get().setColumn((v)=>[
...v,
column
]);
}
}
}), []),
children: children
});
exports.TableBuilderColumnsProvider = TableBuilderColumnsProvider;
exports.useTableBuilderColumns = useTableBuilderColumns;
//# sourceMappingURL=provider.js.map