Skip to content

Commit 1121164

Browse files
authored
Remove --rdg-scroll-height (#3980)
* Remove `--rdg-scroll-height` * increase actionTimeout?
1 parent 6bd962f commit 1121164

File tree

3 files changed

+15
-27
lines changed

3 files changed

+15
-27
lines changed

src/DataGrid.tsx

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -340,7 +340,7 @@ export function DataGrid<R, SR = unknown, K extends Key = Key>(props: DataGridPr
340340
[columnWidths]
341341
);
342342

343-
const [gridRef, gridWidth, gridHeight, horizontalScrollbarHeight] = useGridDimensions();
343+
const [gridRef, gridWidth, gridHeight] = useGridDimensions();
344344
const {
345345
columns,
346346
colSpanColumns,
@@ -461,8 +461,6 @@ export function DataGrid<R, SR = unknown, K extends Key = Key>(props: DataGridPr
461461
const maxColIdx = columns.length - 1;
462462
const selectedCellIsWithinSelectionBounds = isCellWithinSelectionBounds(selectedPosition);
463463
const selectedCellIsWithinViewportBounds = isCellWithinViewportBounds(selectedPosition);
464-
const scrollHeight =
465-
headerRowHeight + totalRowHeight + summaryRowsHeight + horizontalScrollbarHeight;
466464

467465
/**
468466
* The identity of the wrapper function is stable so it won't break memoization
@@ -1189,7 +1187,6 @@ export function DataGrid<R, SR = unknown, K extends Key = Key>(props: DataGridPr
11891187
gridTemplateColumns,
11901188
gridTemplateRows: templateRows,
11911189
'--rdg-header-row-height': `${headerRowHeight}px`,
1192-
'--rdg-scroll-height': `${scrollHeight}px`,
11931190
...layoutCssVars
11941191
}}
11951192
dir={direction}

src/hooks/useGridDimensions.ts

Lines changed: 4 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@ export function useGridDimensions() {
55
const gridRef = useRef<HTMLDivElement>(null);
66
const [inlineSize, setInlineSize] = useState(1);
77
const [blockSize, setBlockSize] = useState(1);
8-
const [horizontalScrollbarHeight, setHorizontalScrollbarHeight] = useState(0);
98

109
useLayoutEffect(() => {
1110
const { ResizeObserver } = window;
@@ -14,25 +13,18 @@ export function useGridDimensions() {
1413
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
1514
if (ResizeObserver == null) return;
1615

17-
const { clientWidth, clientHeight, offsetWidth, offsetHeight } = gridRef.current!;
18-
const { width, height } = gridRef.current!.getBoundingClientRect();
19-
const initialHorizontalScrollbarHeight = offsetHeight - clientHeight;
20-
const initialWidth = width - offsetWidth + clientWidth;
21-
const initialHeight = height - initialHorizontalScrollbarHeight;
16+
const { clientWidth, clientHeight } = gridRef.current!;
2217

23-
setInlineSize(initialWidth);
24-
setBlockSize(initialHeight);
25-
setHorizontalScrollbarHeight(initialHorizontalScrollbarHeight);
18+
setInlineSize(clientWidth);
19+
setBlockSize(clientHeight);
2620

2721
const resizeObserver = new ResizeObserver((entries) => {
2822
const size = entries[0].contentBoxSize[0];
29-
const { clientHeight, offsetHeight } = gridRef.current!;
3023

3124
// we use flushSync here to avoid flashing scrollbars
3225
flushSync(() => {
3326
setInlineSize(size.inlineSize);
3427
setBlockSize(size.blockSize);
35-
setHorizontalScrollbarHeight(offsetHeight - clientHeight);
3628
});
3729
});
3830
resizeObserver.observe(gridRef.current!);
@@ -42,5 +34,5 @@ export function useGridDimensions() {
4234
};
4335
}, []);
4436

45-
return [gridRef, inlineSize, blockSize, horizontalScrollbarHeight] as const;
37+
return [gridRef, inlineSize, blockSize] as const;
4638
}

vite.config.ts

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { tanstackRouter } from '@tanstack/router-plugin/vite';
22
import react from '@vitejs/plugin-react';
3-
import { playwright } from '@vitest/browser-playwright';
3+
import { playwright, type PlaywrightProviderOptions } from '@vitest/browser-playwright';
44
import { ecij } from 'ecij/plugin';
55
import { defineConfig, type ViteUserConfig } from 'vitest/config';
66
import type { BrowserCommand, BrowserInstanceOption } from 'vitest/node';
@@ -43,27 +43,26 @@ const viewport = { width: 1920, height: 1080 } as const;
4343

4444
// vitest modifies the instance objects, so we cannot rely on static objects
4545
function getInstances(): BrowserInstanceOption[] {
46+
const opts: PlaywrightProviderOptions = {
47+
actionTimeout: 2000,
48+
contextOptions: {
49+
viewport
50+
}
51+
};
52+
4653
return [
4754
{
4855
browser: 'chromium',
4956
provider: playwright({
50-
actionTimeout: 1000,
51-
contextOptions: {
52-
viewport
53-
},
57+
...opts,
5458
launchOptions: {
5559
channel: 'chromium'
5660
}
5761
})
5862
},
5963
{
6064
browser: 'firefox',
61-
provider: playwright({
62-
actionTimeout: 1000,
63-
contextOptions: {
64-
viewport
65-
}
66-
}),
65+
provider: playwright(opts),
6766
// TODO: remove when FF tests are stable
6867
fileParallelism: false
6968
}

0 commit comments

Comments
 (0)