docs(changeset): Eslint, fixes on container rendering

This commit is contained in:
Hein
2025-10-22 13:17:42 +02:00
parent 2f0db1f0e3
commit 0f7cf52432
15 changed files with 314 additions and 257 deletions

View File

@@ -1,7 +1,10 @@
/* eslint-disable @typescript-eslint/no-explicit-any */
/* eslint-disable react/react-in-jsx-scope */
/* eslint-disable react-refresh/only-export-components */
/* eslint-disable @typescript-eslint/no-unused-vars */
import {
type CellArray,
type CellClickedEventArgs,
CompactSelection,
type DataEditorProps,
type DataEditorRef,
@@ -133,7 +136,7 @@ export interface GridlerState {
selection: Rectangle,
abortSignal: AbortSignal
) => CellArray | GetCellsThunk;
getRowBuffer: (row: number) => any;
getRowBuffer: (row: number) => Record<string, any>;
getState: <K extends keyof GridlerStoreState>(key: K) => GridlerStoreState[K];
hasLocalData: boolean;
@@ -149,7 +152,7 @@ export interface GridlerState {
colIndex: number,
newSizeWithGrow: number
) => void;
onContextClick: (area: string, event: any, col?: number, row?: number) => void;
onContextClick: (area: string, event: CellClickedEventArgs, col?: number, row?: number) => void;
onHeaderClicked: (colIndex: number, event: HeaderClickedEventArgs) => void;
onHeaderMenuClick: (col: number, screenPosition: Rectangle) => void;
onItemHovered: (args: GridMouseEventArgs) => void;
@@ -166,6 +169,7 @@ export interface GridlerState {
) => void;
pageSize: number;
ready: boolean;
reload?: () => Promise<void>;
renderColumns?: GridlerColumns;
setState: <K extends keyof GridlerStoreState>(
@@ -190,7 +194,7 @@ const { Provider, useStore: useGridlerStore } = createSyncStore<GridlerStoreStat
_page_data: {},
_visibleArea: { height: 10000, width: 1000, x: 0, y: 0 },
_visiblePages: { height: 0, width: 0, x: 0, y: 0 },
addError: (err: string, ...args: Array<any>) => {
addError: (err: string, ...args: Array<unknown>) => {
const s = get();
console.log('Gridler Error', s.uniqueid, err, args);
set(
@@ -205,7 +209,7 @@ const { Provider, useStore: useGridlerStore } = createSyncStore<GridlerStoreStat
const state = get();
const [col, row] = cell;
const buffer = state.getRowBuffer(row);
const buffer = state.getRowBuffer(row) as Record<string, string> | undefined;
if (buffer !== undefined) {
return state.toCell(buffer, col);
@@ -404,7 +408,7 @@ const { Provider, useStore: useGridlerStore } = createSyncStore<GridlerStoreStat
}
},
onContextClick: (area: string, event: any, col?: number, row?: number) => {
onContextClick: (area: string, event: CellClickedEventArgs, col?: number, row?: number) => {
const s = get();
const coldef = s.renderColumns?.[col ?? -1];
@@ -490,7 +494,9 @@ const { Provider, useStore: useGridlerStore } = createSyncStore<GridlerStoreStat
) ??
s.getMenuItems?.(area, s, col && row ? s.getRowBuffer(row) : undefined, coldef, items) ??
items,
//@ts-expect-error Check bounds
x: event.clientX ?? event.bounds?.x,
//@ts-expect-error Check bounds
y: event.clientY ?? event.bounds?.y,
});
},
@@ -681,8 +687,8 @@ const { Provider, useStore: useGridlerStore } = createSyncStore<GridlerStoreStat
}, 100)
);
},
pageSize: 50,
ready: false,
setState: (key, value) => {
set(
produce((state) => {
@@ -695,7 +701,7 @@ const { Provider, useStore: useGridlerStore } = createSyncStore<GridlerStoreStat
set(
produce((state) => {
if (typeof value === 'function') {
state[key] = (value as (value: any) => any)(state[key]);
state[key] = (value as (value: unknown) => unknown)(state[key]);
} else {
reject(new Error(`Not a function ${value}`));
throw Error(`Not a function ${value}`);
@@ -799,12 +805,13 @@ const { Provider, useStore: useGridlerStore } = createSyncStore<GridlerStoreStat
/// logic to apply the selected row.
useEffect(() => {
const ready = getState('ready');
const ref = getState('_glideref');
const keyField = getState('keyField') ?? 'id';
const selectedRow = getState('selectedRow') ?? props.selectedRow;
const askAPIRowNumber = getState('askAPIRowNumber');
let rowIndex = -1;
if (selectedRow && ref) {
if (selectedRow && ref && ready) {
const page_data = getState('_page_data');
const pageSize = getState('pageSize');
for (const p in page_data) {