one
Version:
One is a new React Framework that makes Vite serve both native and web.
42 lines (41 loc) • 1.53 kB
JavaScript
import { useNavigationContainerRef } from "@react-navigation/native";
import { resetLoaderState } from "../useLoader.mjs";
import * as routerStore from "./router.mjs";
import { initialize } from "./router.mjs";
import { getSSRInitialState, ensureBaseLinkingConfig } from "./linkingConfig.mjs";
let initVersion = 0;
let lastInitVersion = -1;
let ssrRouteTreeInitialized = false;
function useInitializeOneRouter(context, initialLocation) {
const navigationRef = useNavigationContainerRef();
if (typeof window === "undefined") {
if (!ssrRouteTreeInitialized) {
initialize(context, navigationRef, initialLocation);
ssrRouteTreeInitialized = true;
ensureBaseLinkingConfig(routerStore.routeNode);
}
const initialState = initialLocation ? getSSRInitialState(routerStore.routeNode, initialLocation) : routerStore.initialState;
return {
rootComponent: routerStore.rootComponent,
navigationRef,
initialState
};
}
if (lastInitVersion !== initVersion) {
const contexts = "__react_navigation__elements_contexts";
globalThis[contexts] = /* @__PURE__ */new Map();
initialize(context, navigationRef, initialLocation);
lastInitVersion = initVersion;
}
return routerStore;
}
function prepareForSSRRender() {
initVersion++;
}
function resetState() {
prepareForSSRRender();
resetLoaderState();
}
globalThis["__vxrnresetState"] = resetState;
export { prepareForSSRRender, resetState, useInitializeOneRouter };
//# sourceMappingURL=useInitializeOneRouter.mjs.map