UNPKG

@mrii/react-table-builder

Version:
34 lines (31 loc) 1.35 kB
import { jsx } from 'react/jsx-runtime'; import { useMemo, useCallback } from 'react'; import { createZustandContext } from '../../utils/create-zustand-context/index.mjs'; import { stateSetterHandler } from '../../utils/state-setter-handler/index.mjs'; const [Provider, useTableBuilderColumns] = createZustandContext(); const TableBuilderColumnsProvider = ({ name , children })=>/*#__PURE__*/ jsx(Provider, { name: `table-builder-columns - ${name}`, initialState: useMemo(()=>({ columns: [] }), []), actions: useCallback((set, get)=>({ setColumn: 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 }); export { TableBuilderColumnsProvider, useTableBuilderColumns }; //# sourceMappingURL=provider.mjs.map