49 lines
2.6 KiB
React
49 lines
2.6 KiB
React
// Metro module 5573 (f5574).
|
|
import { useEffect } from "react";
|
|
import warnOnce from "./warnOnce_4545";
|
|
import { createNavigatorFactory, useNavigationBuilder, StackRouter, StackActions } from "./Module1481";
|
|
import StackView from "./StackView";
|
|
export default createNavigatorFactory(function StackNavigator(props) {
|
|
const { id, initialRouteName, children, screenListeners, screenOptions, ...props2 } = props;
|
|
const mode = props2.mode;
|
|
warnOnce(mode != null, `Stack Navigator: 'mode="${mode}"' is deprecated. Use 'presentation: "${mode}"' in 'screenOptions' instead.
|
|
|
|
See https://reactnavigation.org/docs/stack-navigator#presentation for more details.`);
|
|
const headerMode = props2.headerMode;
|
|
warnOnce(headerMode === "none", "Stack Navigator: 'headerMode=\"none\"' is deprecated. Use 'headerShown: false' in 'screenOptions' instead.\n\nSee https://reactnavigation.org/docs/stack-navigator/#headershown for more details.");
|
|
warnOnce(headerMode != null && headerMode !== "none", "Stack Navigator: 'headerMode' is moved to 'options'. Moved it to 'screenOptions' to keep current behavior.\n\nSee https://reactnavigation.org/docs/stack-navigator/#headermode for more details.");
|
|
const keyboardHandlingEnabled = props2.keyboardHandlingEnabled;
|
|
warnOnce(keyboardHandlingEnabled !== void 0, "Stack Navigator: 'keyboardHandlingEnabled' is moved to 'options'. Moved it to 'screenOptions' to keep current behavior.\n\nSee https://reactnavigation.org/docs/stack-navigator/#keyboardhandlingenabled for more details.");
|
|
const navigationBuilder = useNavigationBuilder(StackRouter, {
|
|
id,
|
|
initialRouteName,
|
|
children,
|
|
screenListeners,
|
|
screenOptions,
|
|
defaultScreenOptions: {
|
|
presentation: mode,
|
|
headerShown: headerMode ? headerMode !== "none" : !headerMode,
|
|
headerMode: headerMode ? headerMode !== "none" ? headerMode : void 0 : void 0,
|
|
keyboardHandlingEnabled
|
|
}
|
|
});
|
|
const { state, descriptors, navigation, NavigationContent } = navigationBuilder;
|
|
useEffect(() => {
|
|
const addListener = navigation.addListener;
|
|
return addListener == null ? void 0 : addListener.call(navigation, "tabPress", (c29524_0) => {
|
|
const isFocused = navigation.isFocused();
|
|
requestAnimationFrame(() => {
|
|
if (state.index > 0 && isFocused && !c29524_0.defaultPrevented) {
|
|
navigation.dispatch({
|
|
...StackActions.popToTop(),
|
|
target: state.key
|
|
});
|
|
}
|
|
});
|
|
});
|
|
}, [navigation, state.index, state.key]);
|
|
return <NavigationContent>
|
|
<StackView {...props2} state={state} descriptors={descriptors} navigation={navigation} />
|
|
</NavigationContent>;
|
|
});
|