diff --git a/src/Gridler/components/Computer.tsx b/src/Gridler/components/Computer.tsx index c3fff7f..14a4f07 100644 --- a/src/Gridler/components/Computer.tsx +++ b/src/Gridler/components/Computer.tsx @@ -71,7 +71,7 @@ export const Computer = React.memo(() => { //When values change, update selection useEffect(() => { - const searchSelection = async () => { + const searchSelection = async (values: Array>) => { const page_data = getState('_page_data'); const pageSize = getState('pageSize'); const keyField = getState('keyField') ?? 'id'; @@ -85,6 +85,9 @@ export const Computer = React.memo(() => { ? values?.[vi] : undefined ); + if (!key) { + continue; + } for (const p in page_data) { for (const r in page_data[p]) { const idx = Number(p) * pageSize + Number(r); @@ -115,7 +118,7 @@ export const Computer = React.memo(() => { }; if (values) { - searchSelection().then((rowIndexes) => { + searchSelection(values).then((rowIndexes) => { let rows = CompactSelection.empty(); rowIndexes.forEach((r) => { if (r !== undefined) { diff --git a/src/Gridler/components/GridlerStore.tsx b/src/Gridler/components/GridlerStore.tsx index 5d0bbde..b650dd8 100644 --- a/src/Gridler/components/GridlerStore.tsx +++ b/src/Gridler/components/GridlerStore.tsx @@ -336,7 +336,9 @@ const { Provider, useStore: useGridlerStore } = createSyncStore { const state = get(); - + if (key === undefined || key === null) { + return undefined; + } let rowIndex = -1; if (state.ready) { const page_data = state._page_data;