// Metro module 5628 (f5629). import * as Module19 from "react"; import { useContext, useCallback, useState, useEffect, useMemo } from "react"; import { StyleSheet, View } from "react-native"; import { HeaderHeightContext, getHeaderTitle, HeaderBackContext, HeaderShownContext } from "./Module5579"; import useKeyboardManager from "./useKeyboardManager"; import { useTheme } from "./Module1481"; import Card from "./Card"; import Module5605 from "./Module5605"; let styles; const r27 = Module19.memo(function CardContainer(props) { let onPageChangeStart, onPageChangeCancel, onPageChangeConfirm, setState, headerTitle; const { interpolationIndex, index, active, closing, gesture, focused, modal, getPreviousScene, getFocusedRoute, headerDarkContent, hasAbsoluteFloatHeader } = props; let headerHeight = props.headerHeight; const onHeaderHeightChange = props.onHeaderHeightChange; let isParentHeaderShown = props.isParentHeaderShown; const { isNextScreenTransparent, detachCurrentScreen, layout, onCloseRoute, onOpenRoute, onGestureCancel, onGestureEnd: onGestureEnd2, onGestureStart, onTransitionEnd, onTransitionStart, renderHeader, renderScene, safeAreaInsetBottom, safeAreaInsetLeft, safeAreaInsetRight, safeAreaInsetTop, scene } = props; onPageChangeStart = void 0; onPageChangeCancel = void 0; onPageChangeConfirm = void 0; setState = void 0; headerTitle = void 0; let r26 = useContext(HeaderHeightContext); const keyboardManager = useKeyboardManager(useCallback(() => { const descriptor = scene.descriptor; const options = descriptor.options; return descriptor.navigation.isFocused() && options.keyboardHandlingEnabled !== false; }, [scene.descriptor])); onPageChangeStart = keyboardManager.onPageChangeStart; onPageChangeCancel = keyboardManager.onPageChangeCancel; onPageChangeConfirm = keyboardManager.onPageChangeConfirm; const insets = { top: safeAreaInsetTop, right: safeAreaInsetRight, bottom: safeAreaInsetBottom, left: safeAreaInsetLeft }; const colors = useTheme().colors; let pointerEvents = "box-none"; let state; [state, setState] = useState("box-none"); useEffect(() => { const next = scene.progress.next; const r2 = next == null; let r8 = void 0; if (!r2) { const addListener = next.addListener; r8 = addListener == null ? void 0 : addListener.call(next, (a0) => { setState(a0.value <= 0.1 ? "box-none" : "none"); }); } let c25512_0 = r8; return () => { if (c25512_0) { const next = scene.progress.next; if (next != null) { const removeListener = next.removeListener; if (removeListener != null) { removeListener.call(next, c25512_0); } } } }; }, [state, scene.progress.next]); const options = scene.descriptor.options; const { presentation, animationEnabled, cardOverlay, cardOverlayEnabled, cardShadowEnabled, cardStyle, cardStyleInterpolator, gestureDirection, gestureEnabled, gestureResponseDistance, gestureVelocityImpact, headerMode, headerShown, transitionSpec } = options; const r99 = getPreviousScene({ route: scene.descriptor.route }); let r100 = void 0; if (r99) { const descriptor = r99.descriptor; headerTitle = getHeaderTitle(descriptor.options, descriptor.route.name); r100 = headerTitle; } const memo = useMemo(() => headerTitle !== void 0 ? { title: headerTitle } : void 0, [r100]); const props2 = { interpolationIndex, gestureDirection, layout, insets, gesture, current: scene.progress.current, next: scene.progress.next, closing, onOpen: () => { const route = scene.descriptor.route; onTransitionEnd({ route }, false); onOpenRoute({ route }); }, onClose: () => { const route = scene.descriptor.route; onTransitionEnd({ route }, true); onCloseRoute({ route }); }, overlay: cardOverlay, overlayEnabled: cardOverlayEnabled, shadowEnabled: cardShadowEnabled, onTransition: (a0) => { let closing, route; L9: { closing = a0.closing; const gesture = a0.gesture; route = scene.descriptor.route; if (gesture) { if (active && closing) { if (onPageChangeConfirm == null) { break L9; } onPageChangeConfirm(false); break L9; } if (onPageChangeCancel != null) { onPageChangeCancel(); } } else if (onPageChangeConfirm != null) { onPageChangeConfirm(true); } } if (onTransitionStart != null) { onTransitionStart({ route }, closing); } }, onGestureBegin: () => { const route = scene.descriptor.route; onPageChangeStart(); onGestureStart({ route }); }, onGestureCanceled: () => { const route = scene.descriptor.route; onPageChangeCancel(); onGestureCancel({ route }); }, onGestureEnd: () => { onGestureEnd2({ route: scene.descriptor.route }); }, gestureEnabled: index !== 0 && gestureEnabled, gestureResponseDistance, gestureVelocityImpact, transitionSpec, styleInterpolator: cardStyleInterpolator, accessibilityElementsHidden: !focused, importantForAccessibility: focused ? "auto" : "no-hide-descendants", pointerEvents: null, pageOverflowEnabled: null, headerDarkContent: null, containerStyle: null, contentStyle: null, style: null, children: null }; if (!active) { pointerEvents = state; } props2.pointerEvents = pointerEvents; const r129 = headerMode !== "float"; props2.pageOverflowEnabled = r129 && presentation !== "modal"; props2.headerDarkContent = headerDarkContent; props2.containerStyle = hasAbsoluteFloatHeader ? headerMode !== "screen" ? { marginTop: headerHeight } : null : null; props2.contentStyle = [{ backgroundColor: presentation !== "transparentModal" ? colors.background : "transparent" }, cardStyle]; props2.style = [{ overflow: active ? void 0 : "hidden", display: animationEnabled === false && isNextScreenTransparent === false && detachCurrentScreen !== false ? focused ? "flex" : "none" : "flex" }, StyleSheet.absoluteFill]; const Provider = HeaderBackContext.Provider; const Provider2 = HeaderShownContext.Provider; if (!isParentHeaderShown) { isParentHeaderShown = headerShown !== false; } const Provider3 = HeaderHeightContext.Provider; if (!headerShown) { if (r26 == null) { r26 = 0; } headerHeight = r26; } props2.children = {renderScene({ route: scene.descriptor.route })} {r129 ? renderHeader({ mode: "screen", layout, scenes: [r99, scene], getPreviousScene, getFocusedRoute, onContentHeightChange: onHeaderHeightChange }) : null} ; return ; }); styles = StyleSheet.create({ container: { flex: 1, flexDirection: "column-reverse" }, scene: { flex: 1 } }); export default r27;