Skip to content

Commit 8c80fe3

Browse files
Sassoun Derderiancitizensas
authored andcommitted
fix: ensure freeze columns cannot exceed total column count
Fix test to perform click with the pointer events.
1 parent d860d92 commit 8c80fe3

2 files changed

Lines changed: 9 additions & 4 deletions

File tree

packages/core/src/data-editor/data-editor.tsx

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4026,7 +4026,12 @@ const DataEditorImpl: React.ForwardRefRenderFunction<DataEditorRef, DataEditorPr
40264026
);
40274027
}, [onGroupHeaderRenamed, renameGroup]);
40284028

4029-
const mangledFreezeColumns = Math.min(mangledCols.length, freezeLeftColumns + (hasRowMarkers ? 1 : 0));
4029+
const mangledFreezeColumns = React.useMemo(() => {
4030+
return [
4031+
Math.min(mangledCols.length, freezeLeftColumns + (hasRowMarkers ? 1 : 0)),
4032+
Math.min(mangledCols.length, freezeRightColumns)
4033+
] as const;
4034+
}, [freezeLeftColumns, freezeRightColumns, hasRowMarkers, mangledCols.length])
40304035

40314036
React.useImperativeHandle(
40324037
forwardedRef,
@@ -4294,7 +4299,7 @@ const DataEditorImpl: React.ForwardRefRenderFunction<DataEditorRef, DataEditorPr
42944299
onColumnProposeMove={onColumnProposeMoveImpl}
42954300
drawCell={drawCell}
42964301
disabledRows={disabledRows}
4297-
freezeColumns={[mangledFreezeColumns, freezeRightColumns]}
4302+
freezeColumns={mangledFreezeColumns}
42984303
lockColumns={rowMarkerOffset}
42994304
firstColAccessible={rowMarkerOffset === 0}
43004305
getCellContent={getMangledCellContent}

packages/core/test/data-grid.test.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -437,12 +437,12 @@ describe("data-grid", () => {
437437
render(<DataGrid {...basicPropsWithMoreColumns} freezeColumns={[1, 1]} cellXOffset={3} onMouseUp={spy} />);
438438

439439

440-
fireEvent.mouseDown(screen.getByTestId(dataGridCanvasId), {
440+
fireEvent.pointerDown(screen.getByTestId(dataGridCanvasId), {
441441
clientX: 950, // Col A
442442
clientY: 36 + 32 * 5 + 16, // Row 5 (0 indexed)
443443
});
444444

445-
fireEvent.mouseUp(screen.getByTestId(dataGridCanvasId), {
445+
fireEvent.pointerUp(screen.getByTestId(dataGridCanvasId), {
446446
clientX: 950, // Col A
447447
clientY: 36 + 32 * 5 + 16, // Row 5 (0 indexed)
448448
});

0 commit comments

Comments
 (0)