UNPKG

one

Version:

One is a React framework for web, iOS, and Android apps.

44 lines (41 loc) • 1.58 kB
import { useNavigationContainerRef } from "@react-navigation/core"; import { resetLoaderState } from "../useLoader.mjs"; import * as routerStore from "./router.mjs"; import { initialize } from "./router.mjs"; import { ensureBaseLinkingConfig, getSSRInitialState } from "./linkingConfig.mjs"; let initVersion = 0; let lastInitVersion = -1; let ssrRouteTreeContext = null; function useInitializeOneRouter(context, initialLocation, linking) { const navigationRef = useNavigationContainerRef(); if (typeof window === "undefined") { if (ssrRouteTreeContext !== context) { initialize(context, navigationRef, initialLocation, linking); ssrRouteTreeContext = context; ensureBaseLinkingConfig(routerStore.routeNode, linking); } const initialState = initialLocation ? getSSRInitialState(routerStore.routeNode, initialLocation, linking) : routerStore.initialState; return { rootComponent: routerStore.rootComponent, navigationRef, initialState }; } if (lastInitVersion !== initVersion || routerStore.navigationRef !== navigationRef) { const contexts = "__react_navigation__elements_contexts"; globalThis[contexts] = /* @__PURE__ */ new Map(); initialize(context, navigationRef, initialLocation, linking); lastInitVersion = initVersion; } return routerStore; } function prepareForSSRRender() { initVersion++; } function resetState() { prepareForSSRRender(); resetLoaderState(); } globalThis["__vxrnresetState"] = resetState; export { prepareForSSRRender, resetState, useInitializeOneRouter }; //# sourceMappingURL=useInitializeOneRouter.mjs.map