one
Version:
One is a new React Framework that makes Vite serve both native and web.
51 lines (49 loc) • 1.38 kB
JavaScript
"use client";
import { createNavigatorFactory, useNavigationBuilder } from "@react-navigation/core";
import { StackActions, StackRouter } from "@react-navigation/routers";
import { useEffect } from "react";
import { WebStackView } from "./WebStackView.mjs";
import { jsx } from "react/jsx-runtime";
function WebStackNavigator({
initialRouteName,
children,
screenOptions,
headlessChildren,
...rest
}) {
const {
state,
navigation,
descriptors,
NavigationContent
} = useNavigationBuilder(StackRouter, {
...rest,
children,
screenOptions,
initialRouteName
});
useEffect(() => {
return navigation?.addListener?.("tabPress", e => {
const isFocused = navigation.isFocused();
requestAnimationFrame(() => {
if (state.index > 0 && isFocused && !e.defaultPrevented) {
navigation.dispatch({
...StackActions.popToTop(),
target: state.key
});
}
});
});
}, [navigation, state.index, state.key]);
return /* @__PURE__ */jsx(NavigationContent, {
children: /* @__PURE__ */jsx(WebStackView, {
state,
navigation,
descriptors,
customChildren: headlessChildren
})
});
}
const createWebStackNavigator = createNavigatorFactory(WebStackNavigator);
export { createWebStackNavigator };
//# sourceMappingURL=WebStackNavigator.mjs.map