1- import type { SectionListData } from "react-native" ;
1+ import type { DefaultSectionT , SectionListData } from "react-native" ;
22
33export type GetItemLayoutParams < T > = {
44 getItemHeight :
55 | number
66 | ( ( item : T , sectionIndex : number , itemIndex : number ) => number ) ;
77 getItemSeparatorHeight ?:
88 | number
9- | ( ( sectionIndex : number , rowIndex : number ) => number ) ;
9+ | ( ( sectionIndex : number , itemIndex : number ) => number ) ;
1010 getListHeaderHeight ?: number | ( ( ) => number ) ;
1111 getSectionHeaderHeight ?: number | ( ( sectionIndex : number ) => number ) ;
1212 getSectionFooterHeight ?: number | ( ( sectionIndex : number ) => number ) ;
@@ -28,16 +28,19 @@ const resolveValue = <T, Args extends unknown[]>(
2828 : value ;
2929
3030const getItemLayout =
31- < T > ( {
31+ < ItemT , SectionT = DefaultSectionT > ( {
3232 getItemHeight,
3333 getItemSeparatorHeight = 0 ,
3434 getSectionHeaderHeight = 0 ,
3535 getSectionFooterHeight = 0 ,
3636 getSectionSeparatorHeight = 0 ,
3737 getListHeaderHeight = 0 ,
38- } : GetItemLayoutParams < T > ) =>
39- ( data : SectionListData < T > [ ] | null , index : number ) : GetItemLayoutShape => {
40- if ( ! data || ! data . length ) {
38+ } : GetItemLayoutParams < ItemT > ) =>
39+ (
40+ data : readonly SectionListData < ItemT , SectionT > [ ] | null ,
41+ index : number ,
42+ ) : GetItemLayoutShape => {
43+ if ( ! data ?. length ) {
4144 return { length : 0 , offset : 0 , index } ;
4245 }
4346
@@ -119,3 +122,4 @@ const getItemLayout =
119122 } ;
120123
121124export default getItemLayout ;
125+ export type GetItemLayoutFunction = typeof getItemLayout ;
0 commit comments