From 7c1d47819a5d65db8162ebaa308feadd3356996e Mon Sep 17 00:00:00 2001 From: Hein Date: Mon, 1 Dec 2025 11:42:26 +0200 Subject: [PATCH] docs(changeset): Possible selection fixes --- .changeset/major-beans-guess.md | 5 +++++ src/Gridler/GridlerDataGrid.tsx | 6 +++--- src/Gridler/components/Computer.tsx | 17 ++++++++++++----- src/Gridler/components/GridlerStore.tsx | 11 ++++------- 4 files changed, 24 insertions(+), 15 deletions(-) create mode 100644 .changeset/major-beans-guess.md diff --git a/.changeset/major-beans-guess.md b/.changeset/major-beans-guess.md new file mode 100644 index 0000000..b41ddc9 --- /dev/null +++ b/.changeset/major-beans-guess.md @@ -0,0 +1,5 @@ +--- +'@warkypublic/oranguru': patch +--- + +Possible selection fixes diff --git a/src/Gridler/GridlerDataGrid.tsx b/src/Gridler/GridlerDataGrid.tsx index de3b537..69f8bba 100644 --- a/src/Gridler/GridlerDataGrid.tsx +++ b/src/Gridler/GridlerDataGrid.tsx @@ -238,9 +238,9 @@ export const GridlerDataGrid = () => { JSON.stringify(currentSelection?.current) !== JSON.stringify(selection.current) ) { setState('_gridSelection', { ...selection, rows }); - if (JSON.stringify(currentSelection?.rows) !== JSON.stringify(rows)) { - setState('_gridSelectionRows', rows); - } + //if (JSON.stringify(currentSelection?.rows) !== JSON.stringify(rows)) { + setState('_gridSelectionRows', rows); + //} } //console.log('Selection', selection); diff --git a/src/Gridler/components/Computer.tsx b/src/Gridler/components/Computer.tsx index bb3bea5..dde3ff9 100644 --- a/src/Gridler/components/Computer.tsx +++ b/src/Gridler/components/Computer.tsx @@ -282,7 +282,12 @@ export const Computer = React.memo(() => { const firstRow = firstBuffer?.[keyField]; const currentValues = getState('values') ?? []; - if (firstRow && firstRow > 0 && (currentValues.length ?? 0) === 0) { + if ( + !(values && values.length > 0) && + firstRow && + firstRow > 0 && + (currentValues.length ?? 0) === 0 + ) { const values = [firstBuffer, ...(currentValues as Array>)]; const onChange = getState('onChange'); @@ -340,10 +345,12 @@ export const Computer = React.memo(() => { if (selectedRowKey) { const onChange = getState('onChange'); const selected = [{ [getState('keyField') ?? 'id']: selectedRowKey }]; - if (onChange) { - onChange(selected); - } else { - setState('values', selected); + if (JSON.stringify(getState('values')) !== JSON.stringify(selected)) { + if (onChange) { + onChange(selected); + } else { + setState('values', selected); + } } } diff --git a/src/Gridler/components/GridlerStore.tsx b/src/Gridler/components/GridlerStore.tsx index c694e8e..2efdc31 100644 --- a/src/Gridler/components/GridlerStore.tsx +++ b/src/Gridler/components/GridlerStore.tsx @@ -463,13 +463,10 @@ const { Provider, useStore: useGridlerStore } = createSyncStore