Latest changes
This commit is contained in:
@@ -20,6 +20,7 @@ import type {
|
||||
PaginationConfig,
|
||||
SearchConfig,
|
||||
SelectionConfig,
|
||||
TreeConfig,
|
||||
} from './types';
|
||||
|
||||
// ─── Store State ─────────────────────────────────────────────────────────────
|
||||
@@ -85,6 +86,12 @@ export interface GriddyStoreState extends GriddyUIState {
|
||||
|
||||
showToolbar?: boolean;
|
||||
sorting?: SortingState;
|
||||
// ─── Tree/Hierarchical Data ───
|
||||
tree?: TreeConfig<any>;
|
||||
treeLoadingNodes: Set<string>;
|
||||
treeChildrenCache: Map<string, any[]>;
|
||||
setTreeLoadingNode: (nodeId: string, loading: boolean) => void;
|
||||
setTreeChildrenCache: (nodeId: string, children: any[]) => void;
|
||||
// ─── Synced from GriddyProps (written by $sync) ───
|
||||
uniqueId?: string;
|
||||
}
|
||||
@@ -144,6 +151,25 @@ export const { Provider: GriddyProvider, useStore: useGriddyStore } = createSync
|
||||
|
||||
setTotalRows: (count) => set({ totalRows: count }),
|
||||
setVirtualizer: (virtualizer) => set({ _virtualizer: virtualizer }),
|
||||
// ─── Tree State ───
|
||||
treeLoadingNodes: new Set(),
|
||||
treeChildrenCache: new Map(),
|
||||
setTreeLoadingNode: (nodeId, loading) =>
|
||||
set((state) => {
|
||||
const newSet = new Set(state.treeLoadingNodes);
|
||||
if (loading) {
|
||||
newSet.add(nodeId);
|
||||
} else {
|
||||
newSet.delete(nodeId);
|
||||
}
|
||||
return { treeLoadingNodes: newSet };
|
||||
}),
|
||||
setTreeChildrenCache: (nodeId, children) =>
|
||||
set((state) => {
|
||||
const newMap = new Map(state.treeChildrenCache);
|
||||
newMap.set(nodeId, children);
|
||||
return { treeChildrenCache: newMap };
|
||||
}),
|
||||
// ─── Row Count ───
|
||||
totalRows: 0,
|
||||
}));
|
||||
|
||||
Reference in New Issue
Block a user