Skip to content

Commit a698990

Browse files
authored
fix: enhance type definitions
Ref: #111
1 parent 3f28c2d commit a698990

File tree

1 file changed

+10
-6
lines changed

1 file changed

+10
-6
lines changed

src/index.ts

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
1-
import type { SectionListData } from "react-native";
1+
import type { DefaultSectionT, SectionListData } from "react-native";
22

33
export 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

3030
const 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

121124
export default getItemLayout;
125+
export type GetItemLayoutFunction = typeof getItemLayout;

0 commit comments

Comments
 (0)