Skip to content

Commit 41a33aa

Browse files
authored
add more methods to VGridHandle (#670)
* VGrid: add methods to VGridHandler fixes #658 * jsdoc
1 parent 4ff43ff commit 41a33aa

File tree

1 file changed

+24
-0
lines changed

1 file changed

+24
-0
lines changed

src/react/VGrid.tsx

+24
Original file line numberDiff line numberDiff line change
@@ -127,6 +127,26 @@ export interface VGridHandle {
127127
* Get current offsetWidth.
128128
*/
129129
readonly viewportWidth: number;
130+
/**
131+
* Find the start index of visible range of items.
132+
*/
133+
findStartIndex: () => [x: number, y: number];
134+
/**
135+
* Find the end index of visible range of items.
136+
*/
137+
findEndIndex: () => [x: number, y: number];
138+
/**
139+
* Get item offset from start.
140+
* @param indexX horizontal index of item
141+
* @param indexY vertical of item
142+
*/
143+
getItemOffset(indexX: number, indexY: number): [x: number, y: number];
144+
/**
145+
* Get item size.
146+
* @param indexX horizontal index of item
147+
* @param indexY vertical of item
148+
*/
149+
getItemSize(indexX: number, indexY: number): [width: number, height: number];
130150
/**
131151
* Scroll to the item specified by index.
132152
* @param indexX horizontal index of item
@@ -347,6 +367,10 @@ export const VGrid = forwardRef<VGridHandle, VGridProps>(
347367
get viewportWidth() {
348368
return hStore.$getViewportSize();
349369
},
370+
findStartIndex: () => [hStore.$findStartIndex(), vStore.$findStartIndex()],
371+
findEndIndex: () => [hStore.$findEndIndex(), vStore.$findEndIndex()],
372+
getItemOffset: (indexX, indexY) => [hStore.$getItemOffset(indexX), vStore.$getItemOffset(indexY)],
373+
getItemSize: (indexX, indexY) => [hStore.$getItemSize(indexX), vStore.$getItemSize(indexY)],
350374
scrollToIndex: scroller.$scrollToIndex,
351375
scrollTo: scroller.$scrollTo,
352376
scrollBy: scroller.$scrollBy,

0 commit comments

Comments
 (0)