diff --git a/eslint.config.js b/eslint.config.js index 9023668536..25f3c6db9e 100644 --- a/eslint.config.js +++ b/eslint.config.js @@ -574,10 +574,6 @@ export default [ { name: '@testing-library/dom', message: 'Import @testing-library/react instead.' - }, - { - name: 'lodash', - message: 'Import lodash-es instead.' } ], '@typescript-eslint/no-shadow': 0, diff --git a/src/DataGrid.tsx b/src/DataGrid.tsx index c5c002345d..593ed97154 100644 --- a/src/DataGrid.tsx +++ b/src/DataGrid.tsx @@ -342,7 +342,6 @@ function DataGrid( const [selectedPosition, setSelectedPosition] = useState( (): SelectCellState | EditCellState => ({ idx: -1, rowIdx: minRowIdx - 1, mode: 'SELECT' }) ); - const [prevSelectedPosition, setPrevSelectedPosition] = useState(selectedPosition); /** * refs @@ -484,20 +483,14 @@ function DataGrid( */ useLayoutEffect(() => { if ( - !selectedCellIsWithinSelectionBounds || - isSamePosition(selectedPosition, prevSelectedPosition) + focusSinkRef.current !== null && + selectedCellIsWithinSelectionBounds && + selectedPosition.idx === -1 ) { - setPrevSelectedPosition(selectedPosition); - return; - } - - setPrevSelectedPosition(selectedPosition); - - if (focusSinkRef.current !== null && selectedPosition.idx === -1) { focusSinkRef.current.focus({ preventScroll: true }); scrollIntoView(focusSinkRef.current); } - }, [selectedCellIsWithinSelectionBounds, selectedPosition, prevSelectedPosition]); + }, [selectedCellIsWithinSelectionBounds, selectedPosition]); useLayoutEffect(() => { if (shouldFocusCell) {