| 17 | }; |
| 18 | |
| 19 | export const createColumnVisibilitySlice: SliceCreator<ColumnVisibilitySlice> = (set, get) => ({ |
| 20 | // initialize with all static columns visible |
| 21 | visibleColumns: new Set(Object.values(StaticColumnKeys)), |
| 22 | toggleColumnVisibility: (columnKey: string) => |
| 23 | set((state) => { |
| 24 | if (state.columnVisibility.visibleColumns.has(columnKey)) { |
| 25 | state.columnVisibility.visibleColumns.delete(columnKey); |
| 26 | } else { |
| 27 | state.columnVisibility.visibleColumns.add(columnKey); |
| 28 | } |
| 29 | }), |
| 30 | showAllColumns: (columnKeys: string[]) => |
| 31 | set((state) => { |
| 32 | state.columnVisibility.visibleColumns = new Set(columnKeys); |
| 33 | }), |
| 34 | }); |