@legendapp/list
Version:
Legend List is a drop-in replacement for FlatList with much better performance and supporting dynamically sized items.
262 lines (259 loc) • 12.5 kB
TypeScript
import * as _legendapp_list_reanimated from '@legendapp/list/reanimated';
import * as _legendapp_list from '@legendapp/list';
import { LegendListRef } from '@legendapp/list';
import * as react_native from 'react-native';
import * as React from 'react';
declare const LegendList: <ItemT, ListT extends (<T>(props: Omit<Omit<react_native.ScrollViewProps, "scrollEventThrottle">, "contentOffset" | "contentInset" | "maintainVisibleContentPosition" | "stickyHeaderIndices" | "removeClippedSubviews" | "children"> & {
alignItemsAtEnd?: boolean;
columnWrapperStyle?: _legendapp_list.ColumnWrapperStyle;
data: readonly T[];
drawDistance?: number;
estimatedItemSize?: number;
estimatedListSize?: {
height: number;
width: number;
};
extraData?: any;
getEstimatedItemSize?: ((index: number, item: T) => number) | undefined;
initialContainerPoolRatio?: number | undefined;
initialScrollOffset?: number;
initialScrollIndex?: number | {
index: number;
viewOffset?: number | undefined;
viewPosition?: number | undefined;
};
ItemSeparatorComponent?: React.ComponentType<{
leadingItem: T;
}> | undefined;
keyExtractor?: ((item: T, index: number) => string) | undefined;
ListEmptyComponent?: React.ComponentType<any> | React.ReactElement | null | undefined;
ListFooterComponent?: React.ComponentType<any> | React.ReactElement | null | undefined;
ListFooterComponentStyle?: react_native.StyleProp<react_native.ViewStyle> | undefined;
ListHeaderComponent?: React.ComponentType<any> | React.ReactElement | null | undefined;
ListHeaderComponentStyle?: react_native.StyleProp<react_native.ViewStyle> | undefined;
maintainScrollAtEnd?: boolean;
maintainScrollAtEndThreshold?: number;
maintainVisibleContentPosition?: boolean;
numColumns?: number;
onEndReached?: ((info: {
distanceFromEnd: number;
}) => void) | null | undefined;
onEndReachedThreshold?: number | null | undefined;
onItemSizeChanged?: ((info: {
size: number;
previous: number;
index: number;
itemKey: string;
itemData: T;
}) => void) | undefined;
onRefresh?: () => void;
onStartReached?: ((info: {
distanceFromStart: number;
}) => void) | null | undefined;
onStartReachedThreshold?: number | null | undefined;
onViewableItemsChanged?: _legendapp_list.OnViewableItemsChanged | undefined;
progressViewOffset?: number;
recycleItems?: boolean;
refScrollView?: React.Ref<react_native.ScrollView>;
refreshing?: boolean;
renderItem?: ((props: _legendapp_list.LegendListRenderItemProps<T>) => React.ReactNode) | React.ComponentType<_legendapp_list.LegendListRenderItemProps<T>> | undefined;
renderScrollComponent?: (props: react_native.ScrollViewProps) => React.ReactElement<react_native.ScrollViewProps>;
suggestEstimatedItemSize?: boolean;
viewabilityConfig?: _legendapp_list.ViewabilityConfig;
viewabilityConfigCallbackPairs?: _legendapp_list.ViewabilityConfigCallbackPairs | undefined;
waitForInitialLayout?: boolean;
onLoad?: (info: {
elapsedTimeInMs: number;
}) => void;
} & React.RefAttributes<LegendListRef>) => React.ReactNode) | react_native.Animated.AnimatedComponent<(<T>(props: Omit<Omit<react_native.ScrollViewProps, "scrollEventThrottle">, "contentOffset" | "contentInset" | "maintainVisibleContentPosition" | "stickyHeaderIndices" | "removeClippedSubviews" | "children"> & {
alignItemsAtEnd?: boolean;
columnWrapperStyle?: _legendapp_list.ColumnWrapperStyle;
data: readonly T[];
drawDistance?: number;
estimatedItemSize?: number;
estimatedListSize?: {
height: number;
width: number;
};
extraData?: any;
getEstimatedItemSize?: ((index: number, item: T) => number) | undefined;
initialContainerPoolRatio?: number | undefined;
initialScrollOffset?: number;
initialScrollIndex?: number | {
index: number;
viewOffset?: number | undefined;
viewPosition?: number | undefined;
};
ItemSeparatorComponent?: React.ComponentType<{
leadingItem: T;
}> | undefined;
keyExtractor?: ((item: T, index: number) => string) | undefined;
ListEmptyComponent?: React.ComponentType<any> | React.ReactElement | null | undefined;
ListFooterComponent?: React.ComponentType<any> | React.ReactElement | null | undefined;
ListFooterComponentStyle?: react_native.StyleProp<react_native.ViewStyle> | undefined;
ListHeaderComponent?: React.ComponentType<any> | React.ReactElement | null | undefined;
ListHeaderComponentStyle?: react_native.StyleProp<react_native.ViewStyle> | undefined;
maintainScrollAtEnd?: boolean;
maintainScrollAtEndThreshold?: number;
maintainVisibleContentPosition?: boolean;
numColumns?: number;
onEndReached?: ((info: {
distanceFromEnd: number;
}) => void) | null | undefined;
onEndReachedThreshold?: number | null | undefined;
onItemSizeChanged?: ((info: {
size: number;
previous: number;
index: number;
itemKey: string;
itemData: T;
}) => void) | undefined;
onRefresh?: () => void;
onStartReached?: ((info: {
distanceFromStart: number;
}) => void) | null | undefined;
onStartReachedThreshold?: number | null | undefined;
onViewableItemsChanged?: _legendapp_list.OnViewableItemsChanged | undefined;
progressViewOffset?: number;
recycleItems?: boolean;
refScrollView?: React.Ref<react_native.ScrollView>;
refreshing?: boolean;
renderItem?: ((props: _legendapp_list.LegendListRenderItemProps<T>) => React.ReactNode) | React.ComponentType<_legendapp_list.LegendListRenderItemProps<T>> | undefined;
renderScrollComponent?: (props: react_native.ScrollViewProps) => React.ReactElement<react_native.ScrollViewProps>;
suggestEstimatedItemSize?: boolean;
viewabilityConfig?: _legendapp_list.ViewabilityConfig;
viewabilityConfigCallbackPairs?: _legendapp_list.ViewabilityConfigCallbackPairs | undefined;
waitForInitialLayout?: boolean;
onLoad?: (info: {
elapsedTimeInMs: number;
}) => void;
} & React.RefAttributes<LegendListRef>) => React.ReactNode)> | (<ItemT_1>(props: _legendapp_list_reanimated.AnimatedLegendListProps<ItemT_1> & {
ref?: React.Ref<LegendListRef>;
}) => React.ReactElement | null) = <T>(props: Omit<Omit<react_native.ScrollViewProps, "scrollEventThrottle">, "contentOffset" | "contentInset" | "maintainVisibleContentPosition" | "stickyHeaderIndices" | "removeClippedSubviews" | "children"> & {
alignItemsAtEnd?: boolean;
columnWrapperStyle?: _legendapp_list.ColumnWrapperStyle;
data: readonly T[];
drawDistance?: number;
estimatedItemSize?: number;
estimatedListSize?: {
height: number;
width: number;
};
extraData?: any;
getEstimatedItemSize?: ((index: number, item: T) => number) | undefined;
initialContainerPoolRatio?: number | undefined;
initialScrollOffset?: number;
initialScrollIndex?: number | {
index: number;
viewOffset?: number | undefined;
viewPosition?: number | undefined;
};
ItemSeparatorComponent?: React.ComponentType<{
leadingItem: T;
}> | undefined;
keyExtractor?: ((item: T, index: number) => string) | undefined;
ListEmptyComponent?: React.ComponentType<any> | React.ReactElement | null | undefined;
ListFooterComponent?: React.ComponentType<any> | React.ReactElement | null | undefined;
ListFooterComponentStyle?: react_native.StyleProp<react_native.ViewStyle> | undefined;
ListHeaderComponent?: React.ComponentType<any> | React.ReactElement | null | undefined;
ListHeaderComponentStyle?: react_native.StyleProp<react_native.ViewStyle> | undefined;
maintainScrollAtEnd?: boolean;
maintainScrollAtEndThreshold?: number;
maintainVisibleContentPosition?: boolean;
numColumns?: number;
onEndReached?: ((info: {
distanceFromEnd: number;
}) => void) | null | undefined;
onEndReachedThreshold?: number | null | undefined;
onItemSizeChanged?: ((info: {
size: number;
previous: number;
index: number;
itemKey: string;
itemData: T;
}) => void) | undefined;
onRefresh?: () => void;
onStartReached?: ((info: {
distanceFromStart: number;
}) => void) | null | undefined;
onStartReachedThreshold?: number | null | undefined;
onViewableItemsChanged?: _legendapp_list.OnViewableItemsChanged | undefined;
progressViewOffset?: number;
recycleItems?: boolean;
refScrollView?: React.Ref<react_native.ScrollView>;
refreshing?: boolean;
renderItem?: ((props: _legendapp_list.LegendListRenderItemProps<T>) => React.ReactNode) | React.ComponentType<_legendapp_list.LegendListRenderItemProps<T>> | undefined;
renderScrollComponent?: (props: react_native.ScrollViewProps) => React.ReactElement<react_native.ScrollViewProps>;
suggestEstimatedItemSize?: boolean;
viewabilityConfig?: _legendapp_list.ViewabilityConfig;
viewabilityConfigCallbackPairs?: _legendapp_list.ViewabilityConfigCallbackPairs | undefined;
waitForInitialLayout?: boolean;
onLoad?: (info: {
elapsedTimeInMs: number;
}) => void;
} & React.RefAttributes<LegendListRef>) => React.ReactNode>(props: Omit<Omit<react_native.ScrollViewProps, "scrollEventThrottle">, "contentOffset" | "contentInset" | "maintainVisibleContentPosition" | "stickyHeaderIndices" | "removeClippedSubviews" | "children"> & {
alignItemsAtEnd?: boolean;
columnWrapperStyle?: _legendapp_list.ColumnWrapperStyle;
data: readonly ItemT[];
drawDistance?: number;
estimatedItemSize?: number;
estimatedListSize?: {
height: number;
width: number;
};
extraData?: any;
getEstimatedItemSize?: ((index: number, item: ItemT) => number) | undefined;
initialContainerPoolRatio?: number | undefined;
initialScrollOffset?: number;
initialScrollIndex?: number | {
index: number;
viewOffset?: number | undefined;
viewPosition?: number | undefined;
};
ItemSeparatorComponent?: React.ComponentType<{
leadingItem: ItemT;
}> | undefined;
keyExtractor?: ((item: ItemT, index: number) => string) | undefined;
ListEmptyComponent?: React.ComponentType<any> | React.ReactElement | null | undefined;
ListFooterComponent?: React.ComponentType<any> | React.ReactElement | null | undefined;
ListFooterComponentStyle?: react_native.StyleProp<react_native.ViewStyle> | undefined;
ListHeaderComponent?: React.ComponentType<any> | React.ReactElement | null | undefined;
ListHeaderComponentStyle?: react_native.StyleProp<react_native.ViewStyle> | undefined;
maintainScrollAtEnd?: boolean;
maintainScrollAtEndThreshold?: number;
maintainVisibleContentPosition?: boolean;
numColumns?: number;
onEndReached?: ((info: {
distanceFromEnd: number;
}) => void) | null | undefined;
onEndReachedThreshold?: number | null | undefined;
onItemSizeChanged?: ((info: {
size: number;
previous: number;
index: number;
itemKey: string;
itemData: ItemT;
}) => void) | undefined;
onRefresh?: () => void;
onStartReached?: ((info: {
distanceFromStart: number;
}) => void) | null | undefined;
onStartReachedThreshold?: number | null | undefined;
onViewableItemsChanged?: _legendapp_list.OnViewableItemsChanged | undefined;
progressViewOffset?: number;
recycleItems?: boolean;
refScrollView?: React.Ref<react_native.ScrollView>;
refreshing?: boolean;
renderItem?: ((props: _legendapp_list.LegendListRenderItemProps<ItemT>) => React.ReactNode) | React.ComponentType<_legendapp_list.LegendListRenderItemProps<ItemT>> | undefined;
renderScrollComponent?: (props: react_native.ScrollViewProps) => React.ReactElement<react_native.ScrollViewProps>;
suggestEstimatedItemSize?: boolean;
viewabilityConfig?: _legendapp_list.ViewabilityConfig;
viewabilityConfigCallbackPairs?: _legendapp_list.ViewabilityConfigCallbackPairs | undefined;
waitForInitialLayout?: boolean;
onLoad?: (info: {
elapsedTimeInMs: number;
}) => void;
} & {
LegendList?: ListT;
} & React.RefAttributes<LegendListRef>) => React.ReactNode;
export { LegendList };