@@ -11,15 +11,15 @@ import {
1111 ViewportUpdateCallback ,
1212} from './Storage' ;
1313
14- export type StorageTableViewportUpdaterProps = {
15- table : StorageTable < StorageItem > ;
14+ export type StorageTableViewportUpdaterProps < T extends StorageItem > = {
15+ table : StorageTable < T > ;
1616 columns ?: string [ ] ;
1717 top ?: number ;
1818 bottom ?: number ;
1919 filters ?: FilterConfig [ ] ;
2020 sorts ?: SortConfig [ ] ;
2121 isReversed ?: boolean ;
22- onUpdate : ViewportUpdateCallback < StorageItem > ;
22+ onUpdate : ViewportUpdateCallback < T > ;
2323} ;
2424
2525const UPDATE_DELAY = 150 ;
@@ -28,7 +28,9 @@ const ROW_BUFFER_PAGES = 3;
2828
2929const log = Log . module ( 'StorageTableViewportUpdater' ) ;
3030
31- export function StorageTableViewportUpdater ( {
31+ export function StorageTableViewportUpdater <
32+ T extends StorageItem = StorageItem
33+ > ( {
3234 table,
3335 columns,
3436 top = 0 ,
@@ -37,7 +39,7 @@ export function StorageTableViewportUpdater({
3739 sorts,
3840 isReversed = false ,
3941 onUpdate,
40- } : StorageTableViewportUpdaterProps ) : null {
42+ } : StorageTableViewportUpdaterProps < T > ) : null {
4143 const throttledUpdateViewport = useMemo (
4244 ( ) =>
4345 throttle ( ( viewport : StorageTableViewport ) => {
@@ -59,14 +61,12 @@ export function StorageTableViewportUpdater({
5961
6062 useEffect (
6163 function updateViewportAndReturnCleanup ( ) {
62- const cleanup = table . onUpdate (
63- ( viewportData : ViewportData < StorageItem > ) => {
64- onUpdate ( {
65- items : viewportData . items ?? [ ] ,
66- offset : viewportData . offset ?? 0 ,
67- } ) ;
68- }
69- ) ;
64+ const cleanup = table . onUpdate ( ( viewportData : ViewportData < T > ) => {
65+ onUpdate ( {
66+ items : viewportData . items ?? [ ] ,
67+ offset : viewportData . offset ?? 0 ,
68+ } ) ;
69+ } ) ;
7070
7171 return ( ) => {
7272 log . debug ( 'onUpdate cleanup' ) ;
0 commit comments