UNPKG

@mrii/react-table-builder

Version:
38 lines (34 loc) 1.57 kB
'use strict'; 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, useTableBuilderFilters] = index.createZustandContext(); const TableBuilderFiltersProvider = ({ name , children })=>/*#__PURE__*/ jsxRuntime.jsx(Provider, { name: `table-builder-filter - ${name}`, initialState: react.useMemo(()=>({ filters: [], panel: false }), []), actions: react.useCallback((set, get)=>({ setFilters: index$1.stateSetterHandler(set, 'filters'), setPanel: index$1.stateSetterHandler(set, 'panel'), addFilter: (filter)=>{ if (get().filters.findIndex((f)=>f.field === filter.field) !== -1) return; get().setFilters((v)=>[ ...v, filter ]); }, deleteFilter: (field)=>{ get().setFilters((v)=>v.filter((el)=>el.field !== field)); }, editFilter: (filter)=>{ get().setFilters((e)=>e.map((el)=>el.field === filter.field ? filter : el)); } }), []), children: children }); exports.TableBuilderFiltersProvider = TableBuilderFiltersProvider; exports.useTableBuilderFilters = useTableBuilderFilters; //# sourceMappingURL=provider.js.map