Skip to content

Commit 5d28364

Browse files
Mihran MargaryanMihran Margaryan
authored andcommitted
added readonly flag to freezeColumns tuple prop
1 parent 5ad6d89 commit 5d28364

File tree

5 files changed

+50
-46
lines changed

5 files changed

+50
-46
lines changed

packages/core/src/internal/data-grid/data-grid.tsx

Lines changed: 23 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ export interface DataGridProps {
7070

7171
readonly accessibilityHeight: number;
7272

73-
readonly freezeColumns: number | [left: number, right: number];
73+
readonly freezeColumns: number | readonly [left: number, right: number];
7474
readonly freezeTrailingRows: number;
7575
readonly hasAppendRow: boolean;
7676
readonly firstColAccessible: boolean;
@@ -973,15 +973,15 @@ const DataGrid: React.ForwardRefRenderFunction<DataGridRef, DataGridProps> = (p,
973973
const cursor = isDragging
974974
? "grabbing"
975975
: canDrag || isResizing
976-
? "col-resize"
977-
: overFill || isFilling
978-
? "crosshair"
979-
: cursorOverride !== undefined
980-
? cursorOverride
981-
: headerHovered || clickableInnerCellHovered || editableBoolHovered || groupHeaderHovered
982-
? "pointer"
983-
: "default";
984-
976+
? "col-resize"
977+
: overFill || isFilling
978+
? "crosshair"
979+
: cursorOverride !== undefined
980+
? cursorOverride
981+
: headerHovered || clickableInnerCellHovered || editableBoolHovered || groupHeaderHovered
982+
? "pointer"
983+
: "default";
984+
985985
const style = React.useMemo(
986986
() => ({
987987
// width,
@@ -1898,8 +1898,8 @@ const DataGrid: React.ForwardRefRenderFunction<DataGridRef, DataGridProps> = (p,
18981898
freezeLeftColumns === 0 || !fixedShadowX
18991899
? 0
19001900
: cellXOffset > freezeLeftColumns
1901-
? 1
1902-
: clamp(-translateX / 100, 0, 1);
1901+
? 1
1902+
: clamp(-translateX / 100, 0, 1);
19031903

19041904
let translateXRight = 0;
19051905

@@ -1911,17 +1911,17 @@ const DataGrid: React.ForwardRefRenderFunction<DataGridRef, DataGridProps> = (p,
19111911
freezeRightColumns === 0 || !fixedShadowX
19121912
? 0
19131913
: cellXOffset +
1914-
getEffectiveColumns(
1915-
mappedColumns,
1916-
cellXOffset,
1917-
width,
1918-
freezeColumns,
1919-
dragAndDropState,
1920-
translateX
1921-
).filter(column => !column.sticky).length <
1922-
columns.length - freezeRightColumns
1923-
? 1
1924-
: clamp(-translateXRight / 100, 0, 1);
1914+
getEffectiveColumns(
1915+
mappedColumns,
1916+
cellXOffset,
1917+
width,
1918+
freezeColumns,
1919+
dragAndDropState,
1920+
translateX
1921+
).filter(column => !column.sticky).length <
1922+
columns.length - freezeRightColumns
1923+
? 1
1924+
: clamp(-translateXRight / 100, 0, 1);
19251925

19261926
const absoluteOffsetY = -cellYOffset * 32 + translateY;
19271927
const opacityY = !fixedShadowY ? 0 : clamp(-absoluteOffsetY / 100, 0, 1);

packages/core/src/internal/data-grid/image-window-loader-interface.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,11 @@ import type { Rectangle } from "./data-grid-types.js";
33

44
/** @category Types */
55
export interface ImageWindowLoader {
6-
setWindow(newWindow: Rectangle, freezeCols: number | [left: number, right: number], freezeRows: number[]): void;
6+
setWindow(
7+
newWindow: Rectangle,
8+
freezeCols: number | readonly [left: number, right: number],
9+
freezeRows: number[]
10+
): void;
711
loadOrGetImage(url: string, col: number, row: number): HTMLImageElement | ImageBitmap | undefined;
812
setCallback(imageLoaded: (locations: CellSet) => void): void;
913
}

packages/core/src/internal/data-grid/render/data-grid-lib.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ export interface MappedGridColumn extends FullyDefined<InnerGridColumn> {
2222

2323
export function useMappedColumns(
2424
columns: readonly InnerGridColumn[],
25-
freezeColumns: number | [left: number, right: number]
25+
freezeColumns: number | readonly [left: number, right: number]
2626
): readonly MappedGridColumn[] {
2727
// Extract freeze column counts from the union type parameter. freezeColumnsLeft and freezeColumnsRight
2828
// determine which columns should remain sticky at the left and right sides respectively during horizontal scrolling.
@@ -223,7 +223,7 @@ export function getEffectiveColumns(
223223
columns: readonly MappedGridColumn[],
224224
cellXOffset: number,
225225
width: number,
226-
freezeColumns: number | [left: number, right: number],
226+
freezeColumns: number | readonly [left: number, right: number],
227227
dndState?: {
228228
src: number;
229229
dest: number;
@@ -281,7 +281,7 @@ export function getEffectiveColumns(
281281
export function getColumnIndexForX(
282282
targetX: number,
283283
effectiveColumns: readonly MappedGridColumn[],
284-
freezeColumns: number | [left: number, right: number],
284+
freezeColumns: number | readonly [left: number, right: number],
285285
width: number,
286286
translateX?: number
287287
): number {
@@ -817,7 +817,7 @@ export function computeBounds(
817817
translateX: number,
818818
translateY: number,
819819
rows: number,
820-
freezeColumns: number | [left: number, right: number],
820+
freezeColumns: number | readonly [left: number, right: number],
821821
freezeTrailingRows: number,
822822
mappedColumns: readonly MappedGridColumn[],
823823
rowHeight: number | ((index: number) => number)

packages/core/src/internal/data-grid/render/data-grid.render.rings.ts

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ export function drawHighlightRings(
1717
translateX: number,
1818
translateY: number,
1919
mappedColumns: readonly MappedGridColumn[],
20-
freezeColumns: number | [left: number, right: number],
20+
freezeColumns: number | readonly [left: number, right: number],
2121
headerHeight: number,
2222
groupHeaderHeight: number,
2323
rowHeight: number | ((index: number) => number),
@@ -69,22 +69,22 @@ export function drawHighlightRings(
6969
rect.width === 1 && rect.height === 1
7070
? topLeftBounds
7171
: computeBounds(
72-
rect.x + rect.width - 1,
73-
rect.y + rect.height - 1,
74-
width,
75-
height,
76-
groupHeaderHeight,
77-
headerHeight + groupHeaderHeight,
78-
cellXOffset,
79-
cellYOffset,
80-
translateX,
81-
translateY,
82-
rows,
83-
freezeColumns,
84-
freezeTrailingRows,
85-
mappedColumns,
86-
rowHeight
87-
);
72+
rect.x + rect.width - 1,
73+
rect.y + rect.height - 1,
74+
width,
75+
height,
76+
groupHeaderHeight,
77+
headerHeight + groupHeaderHeight,
78+
cellXOffset,
79+
cellYOffset,
80+
translateX,
81+
translateY,
82+
rows,
83+
freezeColumns,
84+
freezeTrailingRows,
85+
mappedColumns,
86+
rowHeight
87+
);
8888

8989
if (rect.x + rect.width >= mappedColumns.length) {
9090
bottomRightBounds.width -= 1;

packages/core/src/internal/data-grid/render/draw-grid-arg.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ export interface DrawGridArg {
3939
readonly translateY: number;
4040
readonly mappedColumns: readonly MappedGridColumn[];
4141
readonly enableGroups: boolean;
42-
readonly freezeColumns: number | [left: number, right: number];
42+
readonly freezeColumns: number | readonly [left: number, right: number];
4343
readonly dragAndDropState: DragAndDropState | undefined;
4444
readonly theme: FullTheme;
4545
readonly headerHeight: number;

0 commit comments

Comments
 (0)