234 lines
7.4 KiB
React
234 lines
7.4 KiB
React
// 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 = <View style={styles.container}>
|
|
<Module5605.Provider value={modal}>
|
|
<View style={styles.scene}>
|
|
<Provider value={memo}>
|
|
<Provider2 value={isParentHeaderShown}>
|
|
<Provider3 value={headerHeight}>
|
|
{renderScene({
|
|
route: scene.descriptor.route
|
|
})}
|
|
</Provider3>
|
|
</Provider2>
|
|
</Provider>
|
|
</View>
|
|
{r129 ? renderHeader({
|
|
mode: "screen",
|
|
layout,
|
|
scenes: [r99, scene],
|
|
getPreviousScene,
|
|
getFocusedRoute,
|
|
onContentHeightChange: onHeaderHeightChange
|
|
}) : null}
|
|
</Module5605.Provider>
|
|
</View>;
|
|
return <Card {...props2} />;
|
|
});
|
|
styles = StyleSheet.create({
|
|
container: {
|
|
flex: 1,
|
|
flexDirection: "column-reverse"
|
|
},
|
|
scene: {
|
|
flex: 1
|
|
}
|
|
});
|
|
export default r27;
|