Skip to content

Commit 2196947

Browse files
Mihran MargaryanMihran Margaryan
authored andcommitted
added readonly flag to freezeColumns tuple prop
1 parent db618f6 commit 2196947

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;
@@ -960,15 +960,15 @@ const DataGrid: React.ForwardRefRenderFunction<DataGridRef, DataGridProps> = (p,
960960
const cursor = isDragging
961961
? "grabbing"
962962
: canDrag || isResizing
963-
? "col-resize"
964-
: overFill || isFilling
965-
? "crosshair"
966-
: cursorOverride !== undefined
967-
? cursorOverride
968-
: headerHovered || clickableInnerCellHovered || editableBoolHovered || groupHeaderHovered
969-
? "pointer"
970-
: "default";
971-
963+
? "col-resize"
964+
: overFill || isFilling
965+
? "crosshair"
966+
: cursorOverride !== undefined
967+
? cursorOverride
968+
: headerHovered || clickableInnerCellHovered || editableBoolHovered || groupHeaderHovered
969+
? "pointer"
970+
: "default";
971+
972972
const style = React.useMemo(
973973
() => ({
974974
// width,
@@ -1905,8 +1905,8 @@ const DataGrid: React.ForwardRefRenderFunction<DataGridRef, DataGridProps> = (p,
19051905
freezeLeftColumns === 0 || !fixedShadowX
19061906
? 0
19071907
: cellXOffset > freezeLeftColumns
1908-
? 1
1909-
: clamp(-translateX / 100, 0, 1);
1908+
? 1
1909+
: clamp(-translateX / 100, 0, 1);
19101910

19111911
let translateXRight = 0;
19121912

@@ -1918,17 +1918,17 @@ const DataGrid: React.ForwardRefRenderFunction<DataGridRef, DataGridProps> = (p,
19181918
freezeRightColumns === 0 || !fixedShadowX
19191919
? 0
19201920
: cellXOffset +
1921-
getEffectiveColumns(
1922-
mappedColumns,
1923-
cellXOffset,
1924-
width,
1925-
freezeColumns,
1926-
dragAndDropState,
1927-
translateX
1928-
).filter(column => !column.sticky).length <
1929-
columns.length - freezeRightColumns
1930-
? 1
1931-
: clamp(-translateXRight / 100, 0, 1);
1921+
getEffectiveColumns(
1922+
mappedColumns,
1923+
cellXOffset,
1924+
width,
1925+
freezeColumns,
1926+
dragAndDropState,
1927+
translateX
1928+
).filter(column => !column.sticky).length <
1929+
columns.length - freezeRightColumns
1930+
? 1
1931+
: clamp(-translateXRight / 100, 0, 1);
19321932

19331933
const absoluteOffsetY = -cellYOffset * 32 + translateY;
19341934
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)