one
Version:
One is a new React Framework that makes Vite serve both native and web.
42 lines (41 loc) • 1.62 kB
JavaScript
import { useNavigationContainerRef } from "@react-navigation/core";
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 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