// Metro module 9256 (f9257).
import { forwardRef, useCallback, useMemo } from "react";
import { RefreshControl } from "react-native";
import useFastestListPropsScrollReporting_native from "./props/useFastestListPropsScrollReporting.native";
import useFastestListPropsEstimatedListSize_native from "./props/useFastestListPropsEstimatedListSize.native";
import FastList, { FastListItemTypes, AnimatedFastList } from "../../lib/native/FastList";
import FastestListItemType from "./FastestListItemType";
const noop = () => {};
const r24 = forwardRef(function(a0, a1) {
const { accessibilityLabel, enabled, estimatedListSize, horizontal: _horizontal, inActionSheet, insetStart, insetEnd, itemSize, keyboardDismissMode, keyboardShouldPersistTaps, keyExtractor, listFooterSize, listFooterAlwaysMounted: _listFooterAlwaysMounted, listHeaderSize, listHeaderAlwaysMounted: _listHeaderAlwaysMounted, onLayout, preventNativeModalDismiss, renderAhead: _renderAhead, renderItem, renderListFooter, renderListHeader, renderSectionHeader, renderSectionFooter, scrollEventThrottle, scrollIndicatorInsetEnd, scrollIndicatorInsetStart, sectionHeaderSize, sectionHeaderIsSticky: _sectionHeaderIsSticky, sectionFooterSize, sections, showsHorizontalScrollIndicator, showsVerticalScrollIndicator, style, ...rest } = a0;
a0.enabled;
let horizontal = a0.horizontal;
if (horizontal === void 0) {
horizontal = false;
}
let c17093_0 = horizontal;
let listFooterAlwaysMounted = a0.listFooterAlwaysMounted;
if (listFooterAlwaysMounted === void 0) {
listFooterAlwaysMounted = false;
}
let listHeaderAlwaysMounted = a0.listHeaderAlwaysMounted;
if (listHeaderAlwaysMounted === void 0) {
listHeaderAlwaysMounted = false;
}
const { renderAhead = "nominal", sectionHeaderIsSticky = true } = a0;
const fastestListPropsScrollReporting_native = useFastestListPropsScrollReporting_native(rest, horizontal);
const { onScroll, onScrollBeginDrag, onScrollEndDrag } = fastestListPropsScrollReporting_native;
const fastestListPropsEstimatedListSize_native = useFastestListPropsEstimatedListSize_native({
estimatedListSize,
horizontal
});
const callback = useCallback((a0, a1, a2) => {
if (FastListItemTypes.ITEM === a0) {
return keyExtractor == null ? void 0 : keyExtractor(FastestListItemType.ITEM, a1, a2 == null ? -1 : a2);
}
if (FastListItemTypes.SECTION === a0) {
return keyExtractor == null ? void 0 : keyExtractor(FastestListItemType.SECTION_HEADER, a1, -1);
}
if (FastListItemTypes.SECTION_FOOTER === a0) {
return keyExtractor == null ? void 0 : keyExtractor(FastestListItemType.SECTION_FOOTER, a1, -1);
}
}, [keyExtractor]);
const memo = useMemo(() => scrollIndicatorInsetStart == null ? scrollIndicatorInsetEnd == null ? void 0 : c17093_0 ? {
left: scrollIndicatorInsetStart,
right: scrollIndicatorInsetEnd
} : {
top: scrollIndicatorInsetStart,
bottom: scrollIndicatorInsetEnd
} : c17093_0 ? {
left: scrollIndicatorInsetStart,
right: scrollIndicatorInsetEnd
} : {
top: scrollIndicatorInsetStart,
bottom: scrollIndicatorInsetEnd
}, [horizontal, scrollIndicatorInsetEnd, scrollIndicatorInsetStart]);
const memo2 = useMemo(() => preventNativeModalDismiss === true ? inActionSheet === true ? : void 0 : void 0, [preventNativeModalDismiss, inActionSheet]);
const Component = rest.scrollReporting === "animatedCallbacks" ? AnimatedFastList : FastList;
const batchesToRender = renderAhead === "nominal" ? void 0 : renderAhead === "half" ? 14 : renderAhead !== "full" ? void 0 : 16;
const stickySectionsVariant = sectionHeaderIsSticky ? "default" : "disabled";
const onScroll2 = rest.scrollReporting !== "animatedScrollPosition" ? onScroll : void 0;
const scrollPosValue = rest.scrollReporting === "animatedScrollPosition" ? rest.scrollPosition : void 0;
if (!listHeaderAlwaysMounted) {
listHeaderAlwaysMounted = listFooterAlwaysMounted;
}
return ;
});
export default r24;