Skip to content
This repository was archived by the owner on Dec 16, 2022. It is now read-only.

Commit 4bd960f

Browse files
authored
[WINDOW]: pinned row and column support. (#173)
* [WINDOW]: added support for pinned columns and rows. * [WINDOW]: wired in cell meta to pinned columns and rows.
1 parent 18efba3 commit 4bd960f

File tree

7 files changed

+280
-32
lines changed

7 files changed

+280
-32
lines changed

.changeset/yellow-berries-count.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"@resembli/react-virtualized-window": patch
3+
---
4+
5+
Added full support for pinned left and pinned right columns and pinned top and bottom rows

packages/react-virtualized-window/src/RenderItem.tsx

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,8 @@ type RenderItemsProps<T> = {
88
itemWidth: number
99
column: number
1010
row: number
11-
pinned?: "left" | "right"
11+
pinnedRow?: CellMeta["pinnedRow"]
12+
pinnedColumn?: CellMeta["pinnedColumn"]
1213
}
1314

1415
export const RenderItem = function <T>({
@@ -17,7 +18,8 @@ export const RenderItem = function <T>({
1718
itemWidth,
1819
column,
1920
row,
20-
pinned,
21+
pinnedRow,
22+
pinnedColumn,
2123
}: RenderItemsProps<T>) {
2224
const itemStyles = React.useMemo(() => {
2325
return {
@@ -28,7 +30,10 @@ export const RenderItem = function <T>({
2830
}
2931
}, [itemWidth])
3032

31-
const cellMeta = React.useMemo<CellMeta>(() => ({ row, column, pinned }), [column, pinned, row])
33+
const cellMeta = React.useMemo<CellMeta>(
34+
() => ({ row, column, pinnedRow, pinnedColumn }),
35+
[column, pinnedRow, pinnedColumn, row],
36+
)
3237

3338
return <Component data={itemProps} style={itemStyles} cellMeta={cellMeta} />
3439
}

packages/react-virtualized-window/src/ScrollDiv.tsx

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ interface ScrollDivProps {
77
leftOffset: number
88
topOffset: number
99
top: number
10+
left: number
1011
}
1112

1213
export function ScrollDiv({
@@ -15,6 +16,7 @@ export function ScrollDiv({
1516
leftOffset,
1617
topOffset,
1718
top,
19+
left,
1820
children,
1921
}: PropsWithChildren<ScrollDivProps>) {
2022
return (
@@ -25,6 +27,7 @@ export function ScrollDiv({
2527
disableSticky ? 0 : -topOffset
2628
}px, 0px)`,
2729
top,
30+
left,
2831
willChange: "transform",
2932
...style,
3033
}}

0 commit comments

Comments
 (0)