decord/source/9043_NativeStackViewInner.js
2026-07-27 11:26:19 +00:00

425 lines
15 KiB
JavaScript

// Module ID: 9043
// Function ID: 71095
// Name: NativeStackViewInner
// Dependencies: [57, 31, 27, 33, 1457, 4488, 9044, 4479, 1560, 5526, 9045, 9048, 9049]
// Exports: default
// Module 9043 (NativeStackViewInner)
import _slicedToArray from "_slicedToArray";
import result from "result";
import get_ActivityIndicator from "get ActivityIndicator";
import jsxProd from "jsxProd";
let Platform;
let StyleSheet;
let closure_7;
let closure_8;
const require = arg1;
function NativeStackViewInner(state) {
let descriptors;
let importDefault;
state = state.state;
({ navigation: importDefault, descriptors } = state);
const setNextDismissedKey = importDefault(descriptors[11])(state).setNextDismissedKey;
importDefault(descriptors[12])(descriptors);
let obj = { style: closure_11.container };
const routes = state.routes;
obj.children = routes.map((key, index) => {
const state = key;
key = undefined;
if (null != state.routes[index - 1]) {
key = tmp.key;
}
let key1;
if (null != state.routes[index + 1]) {
key1 = tmp3.key;
}
let tmp5;
if (key) {
tmp5 = descriptors[key];
}
let tmp7;
if (key1) {
tmp7 = descriptors[key1];
}
const obj = {
index,
focused: state.index === index,
descriptor: descriptors[key.key],
previousDescriptor: tmp5,
nextDescriptor: tmp7,
onWillDisappear(onDidDisappear, arg1) {
outer1_1.emit({ type: "transitionStart", data: { closing: true }, target: key.key });
},
onWillAppear(arg0) {
outer1_1.emit({ type: "transitionStart", data: { closing: false }, target: key.key });
},
onAppear() {
outer1_1.emit({ type: "transitionEnd", data: { closing: false }, target: key.key });
},
onDisappear() {
outer1_1.emit({ type: "transitionEnd", data: { closing: true }, target: key.key });
},
onDismissed(nativeEvent) {
const StackActions = state(descriptors[4]).StackActions;
outer1_1.dispatch(Object.assign({}, StackActions.pop(nativeEvent.nativeEvent.dismissCount), { source: key.key, target: key.key }));
outer1_3(key.key);
},
onHeaderBackButtonClicked() {
const StackActions = state(descriptors[4]).StackActions;
outer1_1.dispatch(Object.assign({}, StackActions.pop(), { source: key.key, target: key.key }));
},
onNativeDismissCancelled(nativeEvent) {
const StackActions = state(descriptors[4]).StackActions;
outer1_1.dispatch(Object.assign({}, StackActions.pop(nativeEvent.nativeEvent.dismissCount), { source: key.key, target: key.key }));
},
onGestureCancel() {
outer1_1.emit({ type: "gestureCancel", target: key.key });
}
};
return outer1_7(outer1_10, obj, key.key);
});
return callback2(state(descriptors[7]).ScreenStack, obj);
}
({ Platform, StyleSheet } = get_ActivityIndicator);
const View = get_ActivityIndicator.View;
({ jsx: closure_7, jsxs: closure_8 } = jsxProd);
function MaybeNestedStack(children) {
let header;
let headerHeight;
let headerShown;
let headerTopInsetEnabled;
let options;
let presentation;
let route;
({ options, route } = children);
({ presentation, headerHeight, headerTopInsetEnabled } = children);
let obj = route(1457);
({ header, headerShown } = options);
let tmp = undefined === headerShown;
if (!tmp) {
tmp = headerShown;
}
const importDefault = tmp;
const dependencyMap = React.useRef(tmp);
const items = [tmp, presentation, route.name];
const effect = React.useEffect(() => {
tmp = tmp(table[5]);
tmp(false, "Dynamically changing 'headerShown' in modals will result in remounting the screen and losing all local state. See options for the screen '" + route.name + "'.");
table.current = tmp;
}, items);
obj = {};
const items1 = [closure_11.container, , ];
let tmp5 = "transparentModal" !== presentation;
if (tmp5) {
tmp5 = "containedTransparentModal" !== presentation;
}
if (tmp5) {
obj = {};
obj.backgroundColor = obj.useTheme().colors.background;
tmp5 = obj;
}
items1[1] = tmp5;
items1[2] = options.contentStyle;
obj.style = items1;
let str2 = "push";
if ("card" !== presentation) {
str2 = presentation;
}
obj.stackPresentation = str2;
obj.children = children.children;
return closure_7(importDefault(9044), obj);
}
function SceneView(arg0) {
let animation;
let autoHideHomeIndicator;
let customAnimationOnGesture;
let descriptor;
let focused;
let freezeOnBlur;
let fullScreenGestureEnabled;
let gestureEnabled;
let gestureResponseDistance;
let header;
let headerBackButtonMenuEnabled;
let headerBackground;
let headerShown;
let headerTransparent;
let height;
let index;
let keyboardHandlingEnabled;
let navigation;
let navigationBarColor;
let navigationBarHidden;
let nextDescriptor;
let onAppear;
let onDisappear;
let onDismissed;
let onGestureCancel;
let onHeaderBackButtonClicked;
let onNativeDismissCancelled;
let onWillAppear;
let onWillDisappear;
let options;
let orientation;
let presentation;
let previousDescriptor;
let route;
let sheetAllowedDetents;
let statusBarAnimation;
let statusBarColor;
let statusBarHidden;
let statusBarStyle;
let statusBarTranslucent;
let width;
({ focused, descriptor, previousDescriptor, nextDescriptor } = arg0);
({ route, navigation, options } = descriptor);
({ index, onWillDisappear, onWillAppear, onAppear, onDisappear, onDismissed, onHeaderBackButtonClicked, onNativeDismissCancelled, onGestureCancel } = arg0);
let obj = _require(4479);
const UNSTABLE_headerInsets = options.UNSTABLE_headerInsets;
let left;
if (null != UNSTABLE_headerInsets) {
left = UNSTABLE_headerInsets.left;
}
const UNSTABLE_headerInsets2 = options.UNSTABLE_headerInsets;
let right;
if (null != UNSTABLE_headerInsets2) {
right = UNSTABLE_headerInsets2.right;
}
const UNSTABLE_headerInsets3 = options.UNSTABLE_headerInsets;
let bottom;
if (null != UNSTABLE_headerInsets3) {
bottom = UNSTABLE_headerInsets3.bottom;
}
const animationTypeForReplace = options.animationTypeForReplace;
let str = "push";
let str2 = "push";
if (undefined !== animationTypeForReplace) {
str2 = animationTypeForReplace;
}
const fullScreenGestureShadowEnabled = options.fullScreenGestureShadowEnabled;
({ gestureEnabled, header, headerBackButtonMenuEnabled, headerShown, headerBackground, headerTransparent, sheetAllowedDetents } = options);
let str3 = "large";
({ gestureResponseDistance, autoHideHomeIndicator, keyboardHandlingEnabled, navigationBarColor, navigationBarHidden, orientation } = options);
if (undefined !== sheetAllowedDetents) {
str3 = sheetAllowedDetents;
}
const sheetLargestUndimmedDetent = options.sheetLargestUndimmedDetent;
let str4 = "all";
if (undefined !== sheetLargestUndimmedDetent) {
str4 = sheetLargestUndimmedDetent;
}
const sheetGrabberVisible = options.sheetGrabberVisible;
const sheetCornerRadius = options.sheetCornerRadius;
let num = -1;
if (undefined !== sheetCornerRadius) {
num = sheetCornerRadius;
}
const sheetExpandsWhenScrolledToEdge = options.sheetExpandsWhenScrolledToEdge;
({ statusBarTranslucent, presentation } = options);
let str5 = "card";
({ statusBarAnimation, statusBarHidden, statusBarStyle, statusBarColor, freezeOnBlur, animation, customAnimationOnGesture, fullScreenGestureEnabled } = options);
if (undefined !== presentation) {
str5 = presentation;
}
let gestureDirection = options.gestureDirection;
if (undefined === gestureDirection) {
let str6 = "vertical";
if ("card" === str5) {
str6 = "horizontal";
}
gestureDirection = str6;
}
gestureDirection = undefined;
if (null != nextDescriptor) {
gestureDirection = nextDescriptor.options.gestureDirection;
}
if (0 === index) {
str5 = "card";
}
let obj1 = _require(1560);
const safeAreaInsets = obj1.useSafeAreaInsets();
let obj2 = _require(1560);
const safeAreaFrame = obj2.useSafeAreaFrame();
let tmp10 = "modal" === str5;
if (!tmp10) {
tmp10 = "formSheet" === str5;
}
({ width, height } = safeAreaFrame);
let context = React.useContext(_require(5526).HeaderShownContext);
const context1 = React.useContext(_require(5526).HeaderHeightContext);
let num2 = 0;
const context2 = React.useContext(_require(5526).HeaderBackContext);
if (!context) {
num2 = safeAreaInsets.top;
}
let obj3 = _require(1457);
let obj4 = _require(5526);
let defaultHeaderHeight = obj4.getDefaultHeaderHeight(safeAreaFrame, tmp10, num2);
const tmp15 = callback(React.useState(defaultHeaderHeight), 2);
_require = tmp15[1];
let tmp16 = statusBarTranslucent;
if ("boolean" !== typeof statusBarTranslucent) {
tmp16 = 0 !== num2;
}
if (header) {
defaultHeaderHeight = tmp15[0];
}
let tmp17 = context2;
if (previousDescriptor) {
obj = {};
let obj6 = _require(5526);
obj.title = obj6.getHeaderTitle(previousDescriptor.options, previousDescriptor.route.name);
tmp17 = obj;
}
const tmp20 = obj3.usePreventRemoveContext().preventedRoutes[route.key];
let preventRemove;
if (null != tmp20) {
preventRemove = tmp20.preventRemove;
}
obj = { enabled: true, isNativeStack: true, style: StyleSheet.absoluteFill };
const headerLargeTitle = options.headerLargeTitle;
let tmp23 = null != headerLargeTitle;
if (tmp23) {
tmp23 = headerLargeTitle;
}
obj.hasLargeHeader = tmp23;
obj.customAnimationOnSwipe = customAnimationOnGesture;
obj.fullScreenSwipeEnabled = fullScreenGestureEnabled;
obj.fullScreenSwipeShadowEnabled = undefined !== fullScreenGestureShadowEnabled && fullScreenGestureShadowEnabled;
obj.gestureEnabled = false;
obj.homeIndicatorHidden = autoHideHomeIndicator;
obj.hideKeyboardOnSwipe = keyboardHandlingEnabled;
obj.navigationBarColor = navigationBarColor;
obj.navigationBarHidden = navigationBarHidden;
obj.replaceAnimation = str2;
if ("card" !== str5) {
str = str5;
}
obj.stackPresentation = str;
obj.stackAnimation = animation;
obj.screenOrientation = orientation;
obj.sheetAllowedDetents = str3;
obj.sheetLargestUndimmedDetent = str4;
obj.sheetGrabberVisible = undefined !== sheetGrabberVisible && sheetGrabberVisible;
obj.sheetCornerRadius = num;
obj.sheetExpandsWhenScrolledToEdge = undefined === sheetExpandsWhenScrolledToEdge || sheetExpandsWhenScrolledToEdge;
obj.statusBarAnimation = statusBarAnimation;
obj.statusBarHidden = statusBarHidden;
obj.statusBarStyle = statusBarStyle;
obj.statusBarColor = statusBarColor;
obj.statusBarTranslucent = statusBarTranslucent;
obj.swipeDirection = gestureDirection;
obj.transitionDuration = options.animationDuration;
obj.onWillDisappear = onWillDisappear;
obj.onWillAppear = onWillAppear;
obj.onAppear = onAppear;
obj.onDisappear = onDisappear;
obj.onDismissed = onDismissed;
obj.onGestureCancel = onGestureCancel;
obj.gestureResponseDistance = gestureResponseDistance;
obj.nativeBackButtonDismissalEnabled = false;
obj.onHeaderBackButtonClicked = onHeaderBackButtonClicked;
obj.preventNativeDismiss = preventRemove;
obj.onNativeDismissCancelled = onNativeDismissCancelled;
obj.freezeOnBlur = freezeOnBlur;
obj1 = { value: navigation };
obj2 = { value: route };
obj3 = {};
if (!context) {
context = false !== headerShown;
}
obj3.value = context;
obj4 = {};
let tmp29 = defaultHeaderHeight;
if (false === headerShown) {
let num3 = 0;
if (null != context1) {
num3 = context1;
}
tmp29 = num3;
}
obj4.value = tmp29;
let tmp31Result = null;
if (null != headerBackground) {
const obj5 = {};
const items = [closure_11.background, , ];
let translucent = null;
if (headerTransparent) {
translucent = closure_11.translucent;
}
items[1] = translucent;
obj6 = { height: defaultHeaderHeight };
items[2] = obj6;
obj5.style = items;
obj5.children = headerBackground();
tmp31Result = callback2(View, obj5);
const tmp31 = callback2;
const tmp32 = View;
}
const items1 = [tmp31Result, , ];
const obj7 = { accessibilityElementsHidden: !focused };
let str8 = "no-hide-descendants";
if (focused) {
str8 = "auto";
}
obj7.importantForAccessibility = str8;
obj7.style = closure_11.scene;
const obj8 = { options, route, presentation: str5, headerHeight: defaultHeaderHeight, headerTopInsetEnabled: tmp16 };
const obj9 = { value: tmp17 };
const obj10 = { value: obj.useEdgeInsetApplication(false === left, false === right, false === bottom).nextContextValue, children: descriptor.render() };
obj9.children = callback2(_require(4479).EdgeInsetApplicationContext.Provider, obj10);
obj8.children = callback2(_require(5526).HeaderBackContext.Provider, obj9);
const items2 = [callback2(MaybeNestedStack, obj8), ];
let tmp39Result = null;
if (undefined !== header) {
tmp39Result = null;
if (tmp28) {
const obj11 = {
onLayout(nativeEvent) {
callback(nativeEvent.nativeEvent.layout.height);
}
};
let absolute = null;
if (headerTransparent) {
absolute = closure_11.absolute;
}
obj11.style = absolute;
const obj12 = { back: tmp17, options, route, navigation };
obj11.children = header(obj12);
tmp39Result = callback2(View, obj11);
const tmp39 = callback2;
const tmp40 = View;
}
}
items2[1] = tmp39Result;
obj7.children = items2;
items1[1] = closure_8(View, obj7);
const obj13 = { route };
if (undefined !== preventRemove) {
headerBackButtonMenuEnabled = !preventRemove;
}
obj13.headerBackButtonMenuEnabled = headerBackButtonMenuEnabled;
obj13.headerShown = undefined === header && headerShown;
obj13.headerHeight = defaultHeaderHeight;
let headerBackTitle;
if (undefined !== options.headerBackTitle) {
headerBackTitle = options.headerBackTitle;
}
obj13.headerBackTitle = headerBackTitle;
obj13.headerTopInsetEnabled = tmp16;
obj13.canGoBack = undefined !== tmp17;
items1[2] = callback2(importDefault(9045), Object.assign({}, options, obj13));
obj4.children = items1;
obj3.children = closure_8(_require(5526).HeaderHeightContext.Provider, obj4);
obj2.children = callback2(_require(5526).HeaderShownContext.Provider, obj3);
obj1.children = callback2(_require(1457).NavigationRouteContext.Provider, obj2);
obj.children = callback2(_require(1457).NavigationContext.Provider, obj1);
return callback2(_require(4479).Screen, obj, route.key);
}
const styles = StyleSheet.create({ container: { flex: 1 }, scene: { flex: 1, flexDirection: "column-reverse" }, absolute: { position: "absolute", top: 0, left: 0, right: 0 }, translucent: { position: "absolute", top: 0, left: 0, right: 0, zIndex: 1, elevation: 1 }, background: { overflow: "hidden" } });
export default function NativeStackView(arg0) {
const obj = { children: callback2(NativeStackViewInner, Object.assign({}, arg0)) };
return callback2(require(5526) /* Background */.SafeAreaProviderCompat, obj);
};