docs(changeset): Added refs and exports, isEmpty

This commit is contained in:
Hein
2025-10-29 14:56:59 +02:00
parent 615b89360a
commit 54deac6ccc
10 changed files with 245 additions and 186 deletions

View File

@@ -115,6 +115,7 @@ export interface GridlerProps extends PropsWithChildren {
export interface GridlerRef {
getGlideRef: () => DataEditorRef | undefined;
getState: GridlerState['getState'];
isEmpty: () => boolean;
refresh: (parms?: any) => Promise<void>;
reload: (parms?: any) => Promise<void>;
reloadRow: (key: number | string) => Promise<void>;
@@ -132,10 +133,10 @@ export interface GridlerState {
_gridSelectionRows?: GridSelection['rows'];
_loadingList: CompactSelection;
_page_data: Record<number, Array<any>>;
_refresh: () => void;
_scrollTimeout?: any | number;
_visibleArea: Rectangle;
_visiblePages: Rectangle;
addError: (err: string, ...args: Array<any>) => void;
askAPIRowNumber?: (key: string) => Promise<number>;
colFilters?: Array<FilterOption>;
@@ -144,8 +145,8 @@ export interface GridlerState {
colSort?: Array<SortOption>;
data?: Array<any>;
errors: Array<string>;
focused?: boolean;
get: () => GridlerState;
getCellContent: (cell: Item) => GridCell;
getCellsForSelection: (
@@ -156,6 +157,7 @@ export interface GridlerState {
getRowIndexByKey: (key: number | string) => Promise<number | undefined>;
getState: <K extends keyof GridlerStoreState>(key: K) => GridlerStoreState[K];
hasLocalData: boolean;
isEmpty: boolean;
loadingData?: boolean;
loadPage: (page: number, clearMode?: 'all' | 'page') => Promise<void>;
@@ -213,6 +215,13 @@ const { Provider, useStore: useGridlerStore } = createSyncStore<GridlerStoreStat
_events: new EventTarget(),
_loadingList: CompactSelection.empty(),
_page_data: {},
_refresh: () => {
const s = get();
s.loadPage(0, 'all').then(() => {
s.refreshCells();
s.reload?.();
});
},
_visibleArea: { height: 10000, width: 1000, x: 0, y: 0 },
_visiblePages: { height: 0, width: 0, x: 0, y: 0 },
addError: (err: string, ...args: Array<unknown>) => {
@@ -266,7 +275,6 @@ const { Provider, useStore: useGridlerStore } = createSyncStore<GridlerStoreStat
return result as CellArray;
};
},
getRowBuffer: (row: number) => {
const state = get();
//Handle local data
@@ -289,6 +297,7 @@ const { Provider, useStore: useGridlerStore } = createSyncStore<GridlerStoreStat
return rowData;
},
getRowIndexByKey: async (key: number | string) => {
const state = get();
@@ -330,6 +339,7 @@ const { Provider, useStore: useGridlerStore } = createSyncStore<GridlerStoreStat
return get()[key];
},
hasLocalData: false,
isEmpty: true,
keyField: 'id',
loadPage: async (pPage: number, clearMode?: 'all' | 'page') => {
const state = get();
@@ -659,7 +669,7 @@ const { Provider, useStore: useGridlerStore } = createSyncStore<GridlerStoreStat
{
label: `Refresh`,
onClickAsync: async () => {
await s.reload?.();
await s._refresh?.();
},
},
];
@@ -836,8 +846,8 @@ const { Provider, useStore: useGridlerStore } = createSyncStore<GridlerStoreStat
return {
allowOverlay: true,
data: val,
displayData: String(val),
data: val ?? '',
displayData: String(val ?? ''),
kind: GridCellKind.Text,
};
} catch (e) {
@@ -895,8 +905,7 @@ const { Provider, useStore: useGridlerStore } = createSyncStore<GridlerStoreStat
}, [setState, getState]);
getState('_events').addEventListener('reload', (_e: Event) => {
getState('reload')?.();
getState('refreshCells')?.();
getState('_refresh')?.();
});
return {