one 1.1.389 → 1.1.391
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/Root.cjs +13 -28
- package/dist/cjs/Root.js +15 -26
- package/dist/cjs/Root.js.map +1 -1
- package/dist/cjs/Root.native.js +25 -26
- package/dist/cjs/Root.native.js.map +2 -2
- package/dist/cjs/cli/build.cjs +1 -1
- package/dist/cjs/cli/build.js +1 -1
- package/dist/cjs/cli/build.js.map +1 -1
- package/dist/cjs/cli/build.native.js +1 -1
- package/dist/cjs/cli/build.native.js.map +1 -1
- package/dist/cjs/constants.cjs +5 -1
- package/dist/cjs/constants.js +3 -1
- package/dist/cjs/constants.js.map +1 -1
- package/dist/cjs/constants.native.js +5 -1
- package/dist/cjs/constants.native.js.map +2 -2
- package/dist/cjs/createApp.cjs +22 -82
- package/dist/cjs/createApp.js +17 -75
- package/dist/cjs/createApp.js.map +1 -1
- package/dist/cjs/createApp.native.js +0 -1
- package/dist/cjs/createApp.native.js.map +2 -2
- package/dist/cjs/createHandleRequest.cjs +1 -1
- package/dist/cjs/createHandleRequest.js +1 -1
- package/dist/cjs/createHandleRequest.js.map +1 -1
- package/dist/cjs/createHandleRequest.native.js +1 -1
- package/dist/cjs/createHandleRequest.native.js.map +1 -1
- package/dist/cjs/fork/NavigationContainer.cjs +49 -31
- package/dist/cjs/fork/NavigationContainer.js +40 -21
- package/dist/cjs/fork/NavigationContainer.js.map +2 -2
- package/dist/cjs/fork/NavigationContainer.native.js +51 -29
- package/dist/cjs/fork/NavigationContainer.native.js.map +2 -2
- package/dist/cjs/fork/createMemoryHistory.cjs +4 -3
- package/dist/cjs/fork/createMemoryHistory.js +3 -2
- package/dist/cjs/fork/createMemoryHistory.js.map +1 -1
- package/dist/cjs/fork/createMemoryHistory.native.js +8 -4
- package/dist/cjs/fork/createMemoryHistory.native.js.map +2 -2
- package/dist/cjs/fork/extractPathFromURL.cjs +48 -28
- package/dist/cjs/fork/extractPathFromURL.js +44 -21
- package/dist/cjs/fork/extractPathFromURL.js.map +2 -2
- package/dist/cjs/fork/extractPathFromURL.native.js +58 -26
- package/dist/cjs/fork/extractPathFromURL.native.js.map +2 -2
- package/dist/cjs/fork/findFocusedRoute.js.map +1 -1
- package/dist/cjs/fork/findFocusedRoute.native.js.map +1 -1
- package/dist/cjs/fork/getPathFromState-mods.cjs +65 -0
- package/dist/cjs/fork/getPathFromState-mods.js +56 -0
- package/dist/cjs/fork/getPathFromState-mods.js.map +6 -0
- package/dist/cjs/fork/getPathFromState-mods.native.js +70 -0
- package/dist/cjs/fork/getPathFromState-mods.native.js.map +6 -0
- package/dist/cjs/fork/getPathFromState.cjs +75 -224
- package/dist/cjs/fork/getPathFromState.js +68 -223
- package/dist/cjs/fork/getPathFromState.js.map +2 -2
- package/dist/cjs/fork/getPathFromState.native.js +79 -261
- package/dist/cjs/fork/getPathFromState.native.js.map +2 -2
- package/dist/cjs/fork/getStateFromPath-mods.cjs +187 -0
- package/dist/cjs/fork/getStateFromPath-mods.js +199 -0
- package/dist/cjs/fork/getStateFromPath-mods.js.map +6 -0
- package/dist/cjs/fork/getStateFromPath-mods.native.js +284 -0
- package/dist/cjs/fork/getStateFromPath-mods.native.js.map +6 -0
- package/dist/cjs/fork/getStateFromPath.cjs +181 -263
- package/dist/cjs/fork/getStateFromPath.js +148 -264
- package/dist/cjs/fork/getStateFromPath.js.map +2 -2
- package/dist/cjs/fork/getStateFromPath.native.js +164 -304
- package/dist/cjs/fork/getStateFromPath.native.js.map +2 -2
- package/dist/cjs/fork/useBackButton.js.map +1 -1
- package/dist/cjs/fork/useBackButton.native.js.map +1 -1
- package/dist/cjs/fork/useDocumentTitle.js +4 -1
- package/dist/cjs/fork/useDocumentTitle.js.map +1 -1
- package/dist/cjs/fork/useDocumentTitle.native.js +1 -1
- package/dist/cjs/fork/useDocumentTitle.native.js.map +2 -2
- package/dist/cjs/fork/useLinking.cjs +21 -24
- package/dist/cjs/fork/useLinking.js +21 -25
- package/dist/cjs/fork/useLinking.js.map +2 -2
- package/dist/cjs/fork/useLinking.native.js +68 -66
- package/dist/cjs/fork/useLinking.native.js.map +2 -2
- package/dist/cjs/fork/useThenable.js.map +1 -1
- package/dist/cjs/fork/useThenable.native.js.map +1 -1
- package/dist/cjs/fork/validatePathConfig.cjs +32 -11
- package/dist/cjs/fork/validatePathConfig.js +41 -11
- package/dist/cjs/fork/validatePathConfig.js.map +1 -1
- package/dist/cjs/fork/validatePathConfig.native.js +47 -18
- package/dist/cjs/fork/validatePathConfig.native.js.map +2 -2
- package/dist/cjs/getReactNavigationConfig.cjs +1 -1
- package/dist/cjs/getReactNavigationConfig.js +1 -1
- package/dist/cjs/getReactNavigationConfig.native.js +1 -1
- package/dist/cjs/hooks.cjs +2 -2
- package/dist/cjs/hooks.js +1 -1
- package/dist/cjs/hooks.js.map +1 -1
- package/dist/cjs/hooks.native.js +1 -1
- package/dist/cjs/hooks.native.js.map +1 -1
- package/dist/cjs/index.cjs +3 -3
- package/dist/cjs/index.js +2 -2
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/index.native.js +2 -2
- package/dist/cjs/index.native.js.map +1 -1
- package/dist/cjs/layouts/withLayoutContext.cjs +3 -3
- package/dist/cjs/layouts/withLayoutContext.js +2 -2
- package/dist/cjs/layouts/withLayoutContext.js.map +1 -1
- package/dist/cjs/layouts/withLayoutContext.native.js +2 -2
- package/dist/cjs/layouts/withLayoutContext.native.js.map +1 -1
- package/dist/cjs/link/linking.cjs +4 -4
- package/dist/cjs/link/linking.js +3 -3
- package/dist/cjs/link/linking.js.map +2 -2
- package/dist/cjs/link/linking.native.js +3 -3
- package/dist/cjs/link/linking.native.js.map +1 -1
- package/dist/cjs/link/useLinkTo.cjs +3 -3
- package/dist/cjs/link/useLinkTo.js +2 -2
- package/dist/cjs/link/useLinkTo.js.map +1 -1
- package/dist/cjs/link/useLinkTo.native.js +2 -2
- package/dist/cjs/link/useLinkTo.native.js.map +1 -1
- package/dist/cjs/render.cjs +3 -2
- package/dist/cjs/render.js +3 -2
- package/dist/cjs/render.js.map +1 -1
- package/dist/cjs/{Route.js.map → router/Route.js.map} +1 -1
- package/dist/cjs/{Route.native.js.map → router/Route.native.js.map} +1 -1
- package/dist/cjs/{createRoute.cjs → router/createRoute.cjs} +1 -1
- package/dist/cjs/{createRoute.js → router/createRoute.js} +1 -1
- package/dist/cjs/{createRoute.js.map → router/createRoute.js.map} +1 -1
- package/dist/cjs/{createRoute.native.js → router/createRoute.native.js} +1 -1
- package/dist/cjs/{createRoute.native.js.map → router/createRoute.native.js.map} +1 -1
- package/dist/cjs/router/filterRootHTML.cjs +62 -0
- package/dist/cjs/router/filterRootHTML.js +49 -0
- package/dist/cjs/router/filterRootHTML.js.map +6 -0
- package/dist/cjs/router/filterRootHTML.native.js +55 -0
- package/dist/cjs/router/filterRootHTML.native.js.map +6 -0
- package/dist/cjs/{getLinkingConfig.cjs → router/getLinkingConfig.cjs} +2 -2
- package/dist/cjs/{getLinkingConfig.js → router/getLinkingConfig.js} +1 -1
- package/dist/cjs/router/getLinkingConfig.js.map +6 -0
- package/dist/cjs/{getLinkingConfig.native.js → router/getLinkingConfig.native.js} +1 -1
- package/dist/cjs/router/getLinkingConfig.native.js.map +6 -0
- package/dist/cjs/router/getNormalizedStatePath.cjs +2 -2
- package/dist/cjs/router/getNormalizedStatePath.js +2 -2
- package/dist/cjs/router/getNormalizedStatePath.js.map +1 -1
- package/dist/cjs/router/getNormalizedStatePath.native.js +2 -2
- package/dist/cjs/router/getNormalizedStatePath.native.js.map +1 -1
- package/dist/cjs/{getRoutes.cjs → router/getRoutes.cjs} +3 -3
- package/dist/cjs/{getRoutes.js → router/getRoutes.js} +2 -2
- package/dist/cjs/{getRoutes.js.map → router/getRoutes.js.map} +2 -2
- package/dist/cjs/{getRoutes.native.js → router/getRoutes.native.js} +2 -2
- package/dist/cjs/{getRoutes.native.js.map → router/getRoutes.native.js.map} +2 -2
- package/dist/cjs/{imperative-api.cjs → router/imperative-api.cjs} +1 -1
- package/dist/cjs/{imperative-api.js → router/imperative-api.js} +1 -1
- package/dist/cjs/{imperative-api.js.map → router/imperative-api.js.map} +1 -1
- package/dist/cjs/{imperative-api.native.js → router/imperative-api.native.js} +1 -1
- package/dist/cjs/{imperative-api.native.js.map → router/imperative-api.native.js.map} +2 -2
- package/dist/cjs/{matchers.js.map → router/matchers.js.map} +1 -1
- package/dist/cjs/{matchers.native.js.map → router/matchers.native.js.map} +1 -1
- package/dist/cjs/router/router.cjs +25 -9
- package/dist/cjs/router/router.js +25 -3
- package/dist/cjs/router/router.js.map +1 -1
- package/dist/cjs/router/router.native.js +39 -3
- package/dist/cjs/router/router.native.js.map +2 -2
- package/dist/cjs/{sortRoutes.js.map → router/sortRoutes.js.map} +1 -1
- package/dist/cjs/{sortRoutes.native.js.map → router/sortRoutes.native.js.map} +1 -1
- package/dist/cjs/{useNavigation.js.map → router/useNavigation.js.map} +1 -1
- package/dist/cjs/{useNavigation.native.js.map → router/useNavigation.native.js.map} +1 -1
- package/dist/cjs/{useScreens.cjs → router/useScreens.cjs} +57 -6
- package/dist/cjs/{useScreens.js → router/useScreens.js} +29 -3
- package/dist/cjs/router/useScreens.js.map +6 -0
- package/dist/cjs/{useScreens.native.js → router/useScreens.native.js} +10 -3
- package/dist/cjs/router/useScreens.native.js.map +6 -0
- package/dist/cjs/{useViteRoutes.js.map → router/useViteRoutes.js.map} +1 -1
- package/dist/cjs/{useViteRoutes.native.js.map → router/useViteRoutes.native.js.map} +1 -1
- package/dist/cjs/server/createRoutesManifest.cjs +1 -1
- package/dist/cjs/server/createRoutesManifest.js +1 -1
- package/dist/cjs/server/createRoutesManifest.js.map +1 -1
- package/dist/cjs/server/createRoutesManifest.native.js +1 -1
- package/dist/cjs/server/createRoutesManifest.native.js.map +1 -1
- package/dist/cjs/server/getServerManifest.cjs +2 -2
- package/dist/cjs/server/getServerManifest.js +1 -1
- package/dist/cjs/server/getServerManifest.js.map +1 -1
- package/dist/cjs/server/getServerManifest.native.js +1 -1
- package/dist/cjs/server/getServerManifest.native.js.map +1 -1
- package/dist/cjs/server/oneServe.cjs +1 -1
- package/dist/cjs/server/oneServe.js +1 -1
- package/dist/cjs/server/oneServe.js.map +1 -1
- package/dist/cjs/server/oneServe.native.js +1 -1
- package/dist/cjs/server/oneServe.native.js.map +1 -1
- package/dist/cjs/typed-routes/generateRouteTypes.cjs +1 -1
- package/dist/cjs/typed-routes/generateRouteTypes.js +1 -1
- package/dist/cjs/typed-routes/generateRouteTypes.js.map +1 -1
- package/dist/cjs/typed-routes/generateRouteTypes.native.js +1 -1
- package/dist/cjs/typed-routes/generateRouteTypes.native.js.map +1 -1
- package/dist/cjs/typed-routes/getTypedRoutesDeclarationFile.cjs +2 -2
- package/dist/cjs/typed-routes/getTypedRoutesDeclarationFile.js +1 -1
- package/dist/cjs/typed-routes/getTypedRoutesDeclarationFile.js.map +1 -1
- package/dist/cjs/typed-routes/getTypedRoutesDeclarationFile.native.js +1 -1
- package/dist/cjs/typed-routes/getTypedRoutesDeclarationFile.native.js.map +1 -1
- package/dist/cjs/useLoader.cjs +2 -2
- package/dist/cjs/useLoader.js +1 -1
- package/dist/cjs/useLoader.js.map +1 -1
- package/dist/cjs/useLoader.native.js +1 -1
- package/dist/cjs/useLoader.native.js.map +1 -1
- package/dist/cjs/{cleanUrl.cjs → utils/cleanUrl.cjs} +3 -3
- package/dist/cjs/{cleanUrl.js → utils/cleanUrl.js} +1 -1
- package/dist/cjs/{cleanUrl.js.map → utils/cleanUrl.js.map} +2 -2
- package/dist/cjs/{cleanUrl.native.js → utils/cleanUrl.native.js} +1 -1
- package/dist/cjs/{cleanUrl.native.js.map → utils/cleanUrl.native.js.map} +2 -2
- package/dist/cjs/{platform.js.map → utils/platform.js.map} +1 -1
- package/dist/cjs/{platform.native.js.map → utils/platform.native.js.map} +1 -1
- package/dist/cjs/utils/redirect.cjs +1 -1
- package/dist/cjs/utils/redirect.js +1 -1
- package/dist/cjs/utils/redirect.native.js +1 -1
- package/dist/cjs/utils/redirect.native.js.map +1 -1
- package/dist/cjs/utils/serverContext.cjs +54 -0
- package/dist/cjs/utils/serverContext.js +51 -0
- package/dist/cjs/utils/serverContext.js.map +6 -0
- package/dist/cjs/utils/serverContext.native.js +55 -0
- package/dist/cjs/utils/serverContext.native.js.map +6 -0
- package/dist/cjs/utils/useConstant.cjs +44 -0
- package/dist/cjs/utils/useConstant.js +35 -0
- package/dist/cjs/utils/useConstant.js.map +6 -0
- package/dist/cjs/utils/useConstant.native.js +44 -0
- package/dist/cjs/utils/useConstant.native.js.map +6 -0
- package/dist/cjs/views/EmptyRoute.cjs +1 -1
- package/dist/cjs/views/EmptyRoute.js +1 -1
- package/dist/cjs/views/EmptyRoute.native.js +1 -1
- package/dist/cjs/views/LoadProgressBar.cjs +1 -1
- package/dist/cjs/views/LoadProgressBar.js +1 -1
- package/dist/cjs/views/LoadProgressBar.js.map +1 -1
- package/dist/cjs/views/LoadProgressBar.native.js +1 -1
- package/dist/cjs/views/LoadProgressBar.native.js.map +1 -1
- package/dist/cjs/views/Navigator.cjs +2 -2
- package/dist/cjs/views/Navigator.js +1 -1
- package/dist/cjs/views/Navigator.js.map +1 -1
- package/dist/cjs/views/Navigator.native.js +1 -1
- package/dist/cjs/views/Navigator.native.js.map +1 -1
- package/dist/cjs/views/Screen.cjs +1 -1
- package/dist/cjs/views/Screen.js +1 -1
- package/dist/cjs/views/Screen.native.js +1 -1
- package/dist/cjs/vite/DevHead.cjs +59 -0
- package/dist/cjs/vite/DevHead.js +54 -0
- package/dist/cjs/vite/DevHead.js.map +6 -0
- package/dist/cjs/vite/DevHead.native.js +29 -0
- package/dist/cjs/vite/DevHead.native.js.map +6 -0
- package/dist/cjs/vite/plugins/SSRCSSPlugin.cjs +6 -8
- package/dist/cjs/vite/plugins/SSRCSSPlugin.js +6 -8
- package/dist/cjs/vite/plugins/SSRCSSPlugin.js.map +1 -1
- package/dist/cjs/vite/plugins/SSRCSSPlugin.native.js +7 -9
- package/dist/cjs/vite/plugins/SSRCSSPlugin.native.js.map +2 -2
- package/dist/cjs/vite/plugins/fileSystemRouterPlugin.cjs +8 -4
- package/dist/cjs/vite/plugins/fileSystemRouterPlugin.js +10 -5
- package/dist/cjs/vite/plugins/fileSystemRouterPlugin.js.map +1 -1
- package/dist/cjs/vite/plugins/fileSystemRouterPlugin.native.js +11 -6
- package/dist/cjs/vite/plugins/fileSystemRouterPlugin.native.js.map +2 -2
- package/dist/cjs/zero/useQuery.cjs +3 -2
- package/dist/cjs/zero/useQuery.js +2 -2
- package/dist/cjs/zero/useQuery.js.map +1 -1
- package/dist/cjs/zero/useQuery.native.js +1 -1
- package/dist/cjs/zero/useQuery.native.js.map +2 -2
- package/dist/esm/Root.js +16 -19
- package/dist/esm/Root.js.map +1 -1
- package/dist/esm/Root.mjs +9 -13
- package/dist/esm/Root.mjs.map +1 -1
- package/dist/esm/Root.native.js +26 -19
- package/dist/esm/Root.native.js.map +2 -2
- package/dist/esm/cli/build.js +1 -1
- package/dist/esm/cli/build.mjs +1 -1
- package/dist/esm/cli/build.native.js +1 -1
- package/dist/esm/constants.js +3 -1
- package/dist/esm/constants.js.map +1 -1
- package/dist/esm/constants.mjs +4 -2
- package/dist/esm/constants.mjs.map +1 -1
- package/dist/esm/constants.native.js +3 -1
- package/dist/esm/constants.native.js.map +2 -2
- package/dist/esm/createApp.js +22 -76
- package/dist/esm/createApp.js.map +1 -1
- package/dist/esm/createApp.mjs +23 -83
- package/dist/esm/createApp.mjs.map +1 -1
- package/dist/esm/createApp.native.js +0 -1
- package/dist/esm/createApp.native.js.map +2 -2
- package/dist/esm/createHandleRequest.js +1 -1
- package/dist/esm/createHandleRequest.js.map +1 -1
- package/dist/esm/createHandleRequest.mjs +1 -1
- package/dist/esm/createHandleRequest.mjs.map +1 -1
- package/dist/esm/createHandleRequest.native.js +1 -1
- package/dist/esm/createHandleRequest.native.js.map +1 -1
- package/dist/esm/fork/NavigationContainer.js +43 -20
- package/dist/esm/fork/NavigationContainer.js.map +1 -1
- package/dist/esm/fork/NavigationContainer.mjs +42 -24
- package/dist/esm/fork/NavigationContainer.mjs.map +1 -1
- package/dist/esm/fork/NavigationContainer.native.js +44 -24
- package/dist/esm/fork/NavigationContainer.native.js.map +2 -2
- package/dist/esm/fork/createMemoryHistory.js +3 -2
- package/dist/esm/fork/createMemoryHistory.js.map +1 -1
- package/dist/esm/fork/createMemoryHistory.mjs +4 -3
- package/dist/esm/fork/createMemoryHistory.mjs.map +1 -1
- package/dist/esm/fork/createMemoryHistory.native.js +4 -4
- package/dist/esm/fork/createMemoryHistory.native.js.map +2 -2
- package/dist/esm/fork/extractPathFromURL.js +42 -11
- package/dist/esm/fork/extractPathFromURL.js.map +1 -1
- package/dist/esm/fork/extractPathFromURL.mjs +39 -11
- package/dist/esm/fork/extractPathFromURL.mjs.map +1 -1
- package/dist/esm/fork/extractPathFromURL.native.js +52 -15
- package/dist/esm/fork/extractPathFromURL.native.js.map +2 -2
- package/dist/esm/fork/findFocusedRoute.js.map +1 -1
- package/dist/esm/fork/findFocusedRoute.mjs.map +1 -1
- package/dist/esm/fork/findFocusedRoute.native.js.map +1 -1
- package/dist/esm/fork/getPathFromState-mods.js +40 -0
- package/dist/esm/fork/getPathFromState-mods.js.map +6 -0
- package/dist/esm/fork/getPathFromState-mods.mjs +40 -0
- package/dist/esm/fork/getPathFromState-mods.mjs.map +1 -0
- package/dist/esm/fork/getPathFromState-mods.native.js +47 -0
- package/dist/esm/fork/getPathFromState-mods.native.js.map +6 -0
- package/dist/esm/fork/getPathFromState.js +71 -228
- package/dist/esm/fork/getPathFromState.js.map +2 -2
- package/dist/esm/fork/getPathFromState.mjs +73 -221
- package/dist/esm/fork/getPathFromState.mjs.map +1 -1
- package/dist/esm/fork/getPathFromState.native.js +79 -260
- package/dist/esm/fork/getPathFromState.native.js.map +2 -2
- package/dist/esm/fork/getStateFromPath-mods.js +176 -0
- package/dist/esm/fork/getStateFromPath-mods.js.map +6 -0
- package/dist/esm/fork/getStateFromPath-mods.mjs +143 -0
- package/dist/esm/fork/getStateFromPath-mods.mjs.map +1 -0
- package/dist/esm/fork/getStateFromPath-mods.native.js +246 -0
- package/dist/esm/fork/getStateFromPath-mods.native.js.map +6 -0
- package/dist/esm/fork/getStateFromPath.js +160 -265
- package/dist/esm/fork/getStateFromPath.js.map +2 -2
- package/dist/esm/fork/getStateFromPath.mjs +181 -260
- package/dist/esm/fork/getStateFromPath.mjs.map +1 -1
- package/dist/esm/fork/getStateFromPath.native.js +164 -302
- package/dist/esm/fork/getStateFromPath.native.js.map +2 -2
- package/dist/esm/fork/useBackButton.js.map +1 -1
- package/dist/esm/fork/useBackButton.mjs.map +1 -1
- package/dist/esm/fork/useBackButton.native.js.map +1 -1
- package/dist/esm/fork/useDocumentTitle.js +4 -1
- package/dist/esm/fork/useDocumentTitle.js.map +1 -1
- package/dist/esm/fork/useDocumentTitle.mjs.map +1 -1
- package/dist/esm/fork/useDocumentTitle.native.js +1 -1
- package/dist/esm/fork/useDocumentTitle.native.js.map +2 -2
- package/dist/esm/fork/useLinking.js +22 -26
- package/dist/esm/fork/useLinking.js.map +1 -1
- package/dist/esm/fork/useLinking.mjs +20 -23
- package/dist/esm/fork/useLinking.mjs.map +1 -1
- package/dist/esm/fork/useLinking.native.js +65 -67
- package/dist/esm/fork/useLinking.native.js.map +2 -2
- package/dist/esm/fork/useThenable.js.map +1 -1
- package/dist/esm/fork/useThenable.mjs.map +1 -1
- package/dist/esm/fork/useThenable.native.js.map +1 -1
- package/dist/esm/fork/validatePathConfig.js +41 -11
- package/dist/esm/fork/validatePathConfig.js.map +1 -1
- package/dist/esm/fork/validatePathConfig.mjs +32 -11
- package/dist/esm/fork/validatePathConfig.mjs.map +1 -1
- package/dist/esm/fork/validatePathConfig.native.js +43 -18
- package/dist/esm/fork/validatePathConfig.native.js.map +2 -2
- package/dist/esm/getReactNavigationConfig.js +1 -1
- package/dist/esm/getReactNavigationConfig.mjs +1 -1
- package/dist/esm/getReactNavigationConfig.native.js +1 -1
- package/dist/esm/hooks.js +2 -2
- package/dist/esm/hooks.mjs +2 -2
- package/dist/esm/hooks.native.js +2 -2
- package/dist/esm/index.js +3 -3
- package/dist/esm/index.mjs +3 -3
- package/dist/esm/index.native.js +3 -3
- package/dist/esm/layouts/withLayoutContext.js +3 -3
- package/dist/esm/layouts/withLayoutContext.js.map +1 -1
- package/dist/esm/layouts/withLayoutContext.mjs +3 -3
- package/dist/esm/layouts/withLayoutContext.mjs.map +1 -1
- package/dist/esm/layouts/withLayoutContext.native.js +3 -3
- package/dist/esm/layouts/withLayoutContext.native.js.map +1 -1
- package/dist/esm/link/linking.js +2 -2
- package/dist/esm/link/linking.js.map +1 -1
- package/dist/esm/link/linking.mjs +2 -2
- package/dist/esm/link/linking.mjs.map +1 -1
- package/dist/esm/link/linking.native.js +2 -2
- package/dist/esm/link/linking.native.js.map +1 -1
- package/dist/esm/link/useLinkTo.js +2 -2
- package/dist/esm/link/useLinkTo.mjs +2 -2
- package/dist/esm/link/useLinkTo.native.js +2 -2
- package/dist/esm/render.js +3 -2
- package/dist/esm/render.js.map +1 -1
- package/dist/esm/render.mjs +3 -2
- package/dist/esm/render.mjs.map +1 -1
- package/dist/esm/{Route.js.map → router/Route.js.map} +1 -1
- package/dist/esm/router/Route.mjs.map +1 -0
- package/dist/esm/{Route.native.js.map → router/Route.native.js.map} +1 -1
- package/dist/esm/{createRoute.js → router/createRoute.js} +1 -1
- package/dist/esm/{createRoute.js.map → router/createRoute.js.map} +1 -1
- package/dist/esm/{createRoute.mjs → router/createRoute.mjs} +1 -1
- package/dist/esm/router/createRoute.mjs.map +1 -0
- package/dist/esm/{createRoute.native.js → router/createRoute.native.js} +1 -1
- package/dist/esm/{createRoute.native.js.map → router/createRoute.native.js.map} +1 -1
- package/dist/esm/router/filterRootHTML.js +33 -0
- package/dist/esm/router/filterRootHTML.js.map +6 -0
- package/dist/esm/router/filterRootHTML.mjs +39 -0
- package/dist/esm/router/filterRootHTML.mjs.map +1 -0
- package/dist/esm/router/filterRootHTML.native.js +34 -0
- package/dist/esm/router/filterRootHTML.native.js.map +6 -0
- package/dist/esm/{getLinkingConfig.js → router/getLinkingConfig.js} +7 -2
- package/dist/esm/router/getLinkingConfig.js.map +6 -0
- package/dist/esm/{getLinkingConfig.mjs → router/getLinkingConfig.mjs} +2 -2
- package/dist/esm/router/getLinkingConfig.mjs.map +1 -0
- package/dist/esm/{getLinkingConfig.native.js → router/getLinkingConfig.native.js} +2 -2
- package/dist/esm/router/getLinkingConfig.native.js.map +6 -0
- package/dist/esm/router/getNormalizedStatePath.js +1 -1
- package/dist/esm/router/getNormalizedStatePath.mjs +1 -1
- package/dist/esm/router/getNormalizedStatePath.native.js +1 -1
- package/dist/esm/{getRoutes.js → router/getRoutes.js} +3 -3
- package/dist/esm/{getRoutes.js.map → router/getRoutes.js.map} +2 -2
- package/dist/esm/{getRoutes.mjs → router/getRoutes.mjs} +3 -3
- package/dist/esm/router/getRoutes.mjs.map +1 -0
- package/dist/esm/{getRoutes.native.js → router/getRoutes.native.js} +3 -3
- package/dist/esm/{getRoutes.native.js.map → router/getRoutes.native.js.map} +2 -2
- package/dist/esm/{imperative-api.js → router/imperative-api.js} +1 -1
- package/dist/esm/{imperative-api.js.map → router/imperative-api.js.map} +1 -1
- package/dist/esm/{imperative-api.mjs → router/imperative-api.mjs} +1 -1
- package/dist/esm/router/imperative-api.mjs.map +1 -0
- package/dist/esm/{imperative-api.native.js → router/imperative-api.native.js} +1 -1
- package/dist/esm/{imperative-api.native.js.map → router/imperative-api.native.js.map} +1 -1
- package/dist/esm/{matchers.js.map → router/matchers.js.map} +1 -1
- package/dist/esm/router/matchers.mjs.map +1 -0
- package/dist/esm/{matchers.native.js.map → router/matchers.native.js.map} +1 -1
- package/dist/esm/router/router.js +30 -8
- package/dist/esm/router/router.js.map +1 -1
- package/dist/esm/router/router.mjs +24 -8
- package/dist/esm/router/router.mjs.map +1 -1
- package/dist/esm/router/router.native.js +44 -8
- package/dist/esm/router/router.native.js.map +2 -2
- package/dist/esm/{sortRoutes.js.map → router/sortRoutes.js.map} +1 -1
- package/dist/esm/router/sortRoutes.mjs.map +1 -0
- package/dist/esm/{sortRoutes.native.js.map → router/sortRoutes.native.js.map} +1 -1
- package/dist/esm/{useNavigation.js.map → router/useNavigation.js.map} +1 -1
- package/dist/esm/router/useNavigation.mjs.map +1 -0
- package/dist/esm/{useNavigation.native.js.map → router/useNavigation.native.js.map} +1 -1
- package/dist/esm/{useScreens.js → router/useScreens.js} +39 -8
- package/dist/esm/router/useScreens.js.map +6 -0
- package/dist/esm/{useScreens.mjs → router/useScreens.mjs} +59 -8
- package/dist/esm/router/useScreens.mjs.map +1 -0
- package/dist/esm/{useScreens.native.js → router/useScreens.native.js} +20 -8
- package/dist/esm/router/useScreens.native.js.map +6 -0
- package/dist/esm/{useViteRoutes.js.map → router/useViteRoutes.js.map} +1 -1
- package/dist/esm/router/useViteRoutes.mjs.map +1 -0
- package/dist/esm/{useViteRoutes.native.js.map → router/useViteRoutes.native.js.map} +1 -1
- package/dist/esm/server/createRoutesManifest.js +1 -1
- package/dist/esm/server/createRoutesManifest.mjs +1 -1
- package/dist/esm/server/createRoutesManifest.native.js +1 -1
- package/dist/esm/server/getServerManifest.js +2 -2
- package/dist/esm/server/getServerManifest.mjs +2 -2
- package/dist/esm/server/getServerManifest.native.js +2 -2
- package/dist/esm/server/oneServe.js +1 -1
- package/dist/esm/server/oneServe.mjs +1 -1
- package/dist/esm/server/oneServe.native.js +1 -1
- package/dist/esm/typed-routes/generateRouteTypes.js +1 -1
- package/dist/esm/typed-routes/generateRouteTypes.mjs +1 -1
- package/dist/esm/typed-routes/generateRouteTypes.native.js +1 -1
- package/dist/esm/typed-routes/getTypedRoutesDeclarationFile.js +2 -2
- package/dist/esm/typed-routes/getTypedRoutesDeclarationFile.mjs +2 -2
- package/dist/esm/typed-routes/getTypedRoutesDeclarationFile.native.js +2 -2
- package/dist/esm/useLoader.js +2 -2
- package/dist/esm/useLoader.mjs +2 -2
- package/dist/esm/useLoader.native.js +2 -2
- package/dist/esm/{cleanUrl.js → utils/cleanUrl.js} +3 -3
- package/dist/esm/{cleanUrl.js.map → utils/cleanUrl.js.map} +1 -1
- package/dist/esm/{cleanUrl.mjs → utils/cleanUrl.mjs} +3 -3
- package/dist/esm/utils/cleanUrl.mjs.map +1 -0
- package/dist/esm/{cleanUrl.native.js → utils/cleanUrl.native.js} +3 -3
- package/dist/esm/{cleanUrl.native.js.map → utils/cleanUrl.native.js.map} +1 -1
- package/dist/esm/{platform.js.map → utils/platform.js.map} +1 -1
- package/dist/esm/utils/platform.mjs.map +1 -0
- package/dist/esm/{platform.native.js.map → utils/platform.native.js.map} +1 -1
- package/dist/esm/utils/redirect.js +1 -1
- package/dist/esm/utils/redirect.mjs +1 -1
- package/dist/esm/utils/redirect.native.js +1 -1
- package/dist/esm/utils/serverContext.js +35 -0
- package/dist/esm/utils/serverContext.js.map +6 -0
- package/dist/esm/utils/serverContext.mjs +28 -0
- package/dist/esm/utils/serverContext.mjs.map +1 -0
- package/dist/esm/utils/serverContext.native.js +32 -0
- package/dist/esm/utils/serverContext.native.js.map +6 -0
- package/dist/esm/utils/useConstant.js +11 -0
- package/dist/esm/utils/useConstant.js.map +6 -0
- package/dist/esm/utils/useConstant.mjs +10 -0
- package/dist/esm/utils/useConstant.mjs.map +1 -0
- package/dist/esm/utils/useConstant.native.js +15 -0
- package/dist/esm/utils/useConstant.native.js.map +6 -0
- package/dist/esm/views/EmptyRoute.js +1 -1
- package/dist/esm/views/EmptyRoute.mjs +1 -1
- package/dist/esm/views/EmptyRoute.native.js +1 -1
- package/dist/esm/views/LoadProgressBar.js +1 -1
- package/dist/esm/views/LoadProgressBar.mjs +1 -1
- package/dist/esm/views/LoadProgressBar.native.js +1 -1
- package/dist/esm/views/Navigator.js +2 -2
- package/dist/esm/views/Navigator.mjs +2 -2
- package/dist/esm/views/Navigator.native.js +2 -2
- package/dist/esm/views/Screen.js +1 -1
- package/dist/esm/views/Screen.mjs +1 -1
- package/dist/esm/views/Screen.native.js +1 -1
- package/dist/esm/vite/DevHead.js +39 -0
- package/dist/esm/vite/DevHead.js.map +6 -0
- package/dist/esm/vite/DevHead.mjs +36 -0
- package/dist/esm/vite/DevHead.mjs.map +1 -0
- package/dist/esm/vite/DevHead.native.js +9 -0
- package/dist/esm/vite/DevHead.native.js.map +6 -0
- package/dist/esm/vite/plugins/SSRCSSPlugin.js +6 -8
- package/dist/esm/vite/plugins/SSRCSSPlugin.js.map +1 -1
- package/dist/esm/vite/plugins/SSRCSSPlugin.mjs +7 -8
- package/dist/esm/vite/plugins/SSRCSSPlugin.mjs.map +1 -1
- package/dist/esm/vite/plugins/SSRCSSPlugin.native.js +7 -8
- package/dist/esm/vite/plugins/SSRCSSPlugin.native.js.map +2 -2
- package/dist/esm/vite/plugins/fileSystemRouterPlugin.js +10 -4
- package/dist/esm/vite/plugins/fileSystemRouterPlugin.js.map +1 -1
- package/dist/esm/vite/plugins/fileSystemRouterPlugin.mjs +7 -3
- package/dist/esm/vite/plugins/fileSystemRouterPlugin.mjs.map +1 -1
- package/dist/esm/vite/plugins/fileSystemRouterPlugin.native.js +11 -5
- package/dist/esm/vite/plugins/fileSystemRouterPlugin.native.js.map +2 -2
- package/dist/esm/zero/useQuery.js +2 -1
- package/dist/esm/zero/useQuery.js.map +1 -1
- package/dist/esm/zero/useQuery.mjs +2 -1
- package/dist/esm/zero/useQuery.mjs.map +1 -1
- package/dist/esm/zero/useQuery.native.js +2 -1
- package/dist/esm/zero/useQuery.native.js.map +2 -2
- package/package.json +9 -16
- package/src/Root.tsx +33 -44
- package/src/cli/build.ts +1 -1
- package/src/constants.ts +4 -0
- package/src/createApp.native.tsx +1 -1
- package/src/createApp.tsx +23 -82
- package/src/createHandleRequest.ts +3 -2
- package/src/fork/NavigationContainer.tsx +101 -39
- package/src/fork/createMemoryHistory.tsx +15 -13
- package/src/fork/extractPathFromURL.ts +85 -40
- package/src/fork/findFocusedRoute.tsx +9 -1
- package/src/fork/getPathFromState-mods.ts +142 -0
- package/src/fork/getPathFromState.ts +244 -501
- package/src/fork/getStateFromPath-mods.ts +400 -0
- package/src/fork/getStateFromPath.ts +447 -538
- package/src/fork/useBackButton.native.tsx +16 -2
- package/src/fork/useBackButton.tsx +11 -2
- package/src/fork/useDocumentTitle.native.tsx +9 -4
- package/src/fork/useDocumentTitle.tsx +12 -7
- package/src/fork/useLinking.native.ts +71 -63
- package/src/fork/useLinking.ts +75 -40
- package/src/fork/useThenable.tsx +7 -1
- package/src/fork/validatePathConfig.ts +64 -12
- package/src/getReactNavigationConfig.ts +2 -2
- package/src/hooks.tsx +2 -2
- package/src/index.ts +3 -3
- package/src/layouts/withLayoutContext.tsx +3 -3
- package/src/link/linking.ts +2 -2
- package/src/link/useLinkTo.tsx +2 -2
- package/src/render.tsx +3 -5
- package/src/{Route.tsx → router/Route.tsx} +2 -2
- package/src/{createRoute.ts → router/createRoute.ts} +2 -2
- package/src/router/filterRootHTML.ts +81 -0
- package/src/{getLinkingConfig.ts → router/getLinkingConfig.ts} +8 -3
- package/src/router/getNormalizedStatePath.tsx +1 -1
- package/src/{getRoutes.ts → router/getRoutes.ts} +5 -5
- package/src/{imperative-api.ts → router/imperative-api.ts} +2 -2
- package/src/router/router.ts +48 -9
- package/src/{useScreens.tsx → router/useScreens.tsx} +63 -48
- package/src/{useViteRoutes.tsx → router/useViteRoutes.tsx} +2 -2
- package/src/server/createRoutesManifest.ts +3 -3
- package/src/server/getServerManifest.ts +3 -3
- package/src/server/oneServe.ts +1 -1
- package/src/typed-routes/generateRouteTypes.ts +1 -1
- package/src/typed-routes/getTypedRoutesDeclarationFile.ts +3 -3
- package/src/useLoader.ts +2 -2
- package/src/{cleanUrl.ts → utils/cleanUrl.ts} +3 -3
- package/src/utils/redirect.ts +1 -1
- package/src/utils/serverContext.tsx +52 -0
- package/src/utils/useConstant.ts +18 -0
- package/src/views/EmptyRoute.tsx +1 -1
- package/src/views/LoadProgressBar.tsx +1 -1
- package/src/views/Navigator.tsx +2 -2
- package/src/views/Screen.tsx +1 -1
- package/src/vite/DevHead.tsx +39 -0
- package/src/vite/plugins/SSRCSSPlugin.ts +6 -10
- package/src/vite/plugins/fileSystemRouterPlugin.tsx +12 -6
- package/src/zero/useQuery.ts +2 -1
- package/types/Root.d.ts +3 -2
- package/types/Root.d.ts.map +1 -1
- package/types/constants.d.ts +2 -0
- package/types/constants.d.ts.map +1 -1
- package/types/createApp.d.ts.map +1 -1
- package/types/createHandleRequest.d.ts +1 -1
- package/types/createHandleRequest.d.ts.map +1 -1
- package/types/fork/NavigationContainer.d.ts +19 -8
- package/types/fork/NavigationContainer.d.ts.map +1 -1
- package/types/fork/createMemoryHistory.d.ts +10 -1
- package/types/fork/createMemoryHistory.d.ts.map +1 -1
- package/types/fork/extractPathFromURL.d.ts +7 -1
- package/types/fork/extractPathFromURL.d.ts.map +1 -1
- package/types/fork/findFocusedRoute.d.ts +9 -0
- package/types/fork/findFocusedRoute.d.ts.map +1 -1
- package/types/fork/getPathFromState-mods.d.ts +23 -0
- package/types/fork/getPathFromState-mods.d.ts.map +1 -0
- package/types/fork/getPathFromState.d.ts +15 -14
- package/types/fork/getPathFromState.d.ts.map +1 -1
- package/types/fork/getStateFromPath-mods.d.ts +58 -0
- package/types/fork/getStateFromPath-mods.d.ts.map +1 -0
- package/types/fork/getStateFromPath.d.ts +28 -29
- package/types/fork/getStateFromPath.d.ts.map +1 -1
- package/types/fork/useBackButton.d.ts +6 -0
- package/types/fork/useBackButton.d.ts.map +1 -1
- package/types/fork/useBackButton.native.d.ts +9 -1
- package/types/fork/useBackButton.native.d.ts.map +1 -1
- package/types/fork/useDocumentTitle.d.ts +8 -6
- package/types/fork/useDocumentTitle.d.ts.map +1 -1
- package/types/fork/useDocumentTitle.native.d.ts +5 -2
- package/types/fork/useDocumentTitle.native.d.ts.map +1 -1
- package/types/fork/useLinking.d.ts +8 -1
- package/types/fork/useLinking.d.ts.map +1 -1
- package/types/fork/useLinking.native.d.ts +9 -2
- package/types/fork/useLinking.native.d.ts.map +1 -1
- package/types/fork/useThenable.d.ts +6 -0
- package/types/fork/useThenable.d.ts.map +1 -1
- package/types/fork/validatePathConfig.d.ts +8 -1
- package/types/fork/validatePathConfig.d.ts.map +1 -1
- package/types/getReactNavigationConfig.d.ts +1 -1
- package/types/getReactNavigationConfig.d.ts.map +1 -1
- package/types/index.d.ts +3 -3
- package/types/index.d.ts.map +1 -1
- package/types/layouts/withLayoutContext.d.ts +1 -1
- package/types/layouts/withLayoutContext.d.ts.map +1 -1
- package/types/link/linking.d.ts +2 -2
- package/types/link/linking.d.ts.map +1 -1
- package/types/render.d.ts.map +1 -1
- package/types/{Route.d.ts → router/Route.d.ts} +2 -2
- package/types/router/Route.d.ts.map +1 -0
- package/types/{createRoute.d.ts → router/createRoute.d.ts} +1 -1
- package/types/router/createRoute.d.ts.map +1 -0
- package/types/router/filterRootHTML.d.ts +19 -0
- package/types/router/filterRootHTML.d.ts.map +1 -0
- package/types/{getLinkingConfig.d.ts → router/getLinkingConfig.d.ts} +2 -2
- package/types/router/getLinkingConfig.d.ts.map +1 -0
- package/types/{getRoutes.d.ts → router/getRoutes.d.ts} +1 -1
- package/types/router/getRoutes.d.ts.map +1 -0
- package/types/router/imperative-api.d.ts +3 -0
- package/types/router/imperative-api.d.ts.map +1 -0
- package/types/router/matchers.d.ts.map +1 -0
- package/types/router/router.d.ts +2 -2
- package/types/router/router.d.ts.map +1 -1
- package/types/router/sortRoutes.d.ts.map +1 -0
- package/types/router/useNavigation.d.ts.map +1 -0
- package/types/router/useScreens.d.ts.map +1 -0
- package/types/{useViteRoutes.d.ts → router/useViteRoutes.d.ts} +2 -2
- package/types/router/useViteRoutes.d.ts.map +1 -0
- package/types/server/createRoutesManifest.d.ts +3 -3
- package/types/server/createRoutesManifest.d.ts.map +1 -1
- package/types/server/getServerManifest.d.ts +1 -1
- package/types/server/getServerManifest.d.ts.map +1 -1
- package/types/utils/cleanUrl.d.ts.map +1 -0
- package/types/utils/platform.d.ts.map +1 -0
- package/types/utils/serverContext.d.ts +14 -0
- package/types/utils/serverContext.d.ts.map +1 -0
- package/types/utils/useConstant.d.ts +2 -0
- package/types/utils/useConstant.d.ts.map +1 -0
- package/types/vite/DevHead.d.ts +2 -0
- package/types/vite/DevHead.d.ts.map +1 -0
- package/types/vite/plugins/SSRCSSPlugin.d.ts +0 -1
- package/types/vite/plugins/SSRCSSPlugin.d.ts.map +1 -1
- package/types/vite/plugins/fileSystemRouterPlugin.d.ts.map +1 -1
- package/types/zero/useQuery.d.ts.map +1 -1
- package/dist/cjs/getLinkingConfig.js.map +0 -6
- package/dist/cjs/getLinkingConfig.native.js.map +0 -6
- package/dist/cjs/useScreens.js.map +0 -6
- package/dist/cjs/useScreens.native.js.map +0 -6
- package/dist/esm/Route.mjs.map +0 -1
- package/dist/esm/cleanUrl.mjs.map +0 -1
- package/dist/esm/createRoute.mjs.map +0 -1
- package/dist/esm/getLinkingConfig.js.map +0 -6
- package/dist/esm/getLinkingConfig.mjs.map +0 -1
- package/dist/esm/getLinkingConfig.native.js.map +0 -6
- package/dist/esm/getRoutes.mjs.map +0 -1
- package/dist/esm/imperative-api.mjs.map +0 -1
- package/dist/esm/matchers.mjs.map +0 -1
- package/dist/esm/platform.mjs.map +0 -1
- package/dist/esm/sortRoutes.mjs.map +0 -1
- package/dist/esm/useNavigation.mjs.map +0 -1
- package/dist/esm/useScreens.js.map +0 -6
- package/dist/esm/useScreens.mjs.map +0 -1
- package/dist/esm/useScreens.native.js.map +0 -6
- package/dist/esm/useViteRoutes.mjs.map +0 -1
- package/types/Route.d.ts.map +0 -1
- package/types/cleanUrl.d.ts.map +0 -1
- package/types/createRoute.d.ts.map +0 -1
- package/types/getLinkingConfig.d.ts.map +0 -1
- package/types/getRoutes.d.ts.map +0 -1
- package/types/imperative-api.d.ts +0 -3
- package/types/imperative-api.d.ts.map +0 -1
- package/types/matchers.d.ts.map +0 -1
- package/types/platform.d.ts.map +0 -1
- package/types/sortRoutes.d.ts.map +0 -1
- package/types/useNavigation.d.ts.map +0 -1
- package/types/useScreens.d.ts.map +0 -1
- package/types/useViteRoutes.d.ts.map +0 -1
- /package/dist/cjs/{Route.cjs → router/Route.cjs} +0 -0
- /package/dist/cjs/{Route.js → router/Route.js} +0 -0
- /package/dist/cjs/{Route.native.js → router/Route.native.js} +0 -0
- /package/dist/cjs/{matchers.cjs → router/matchers.cjs} +0 -0
- /package/dist/cjs/{matchers.js → router/matchers.js} +0 -0
- /package/dist/cjs/{matchers.native.js → router/matchers.native.js} +0 -0
- /package/dist/cjs/{sortRoutes.cjs → router/sortRoutes.cjs} +0 -0
- /package/dist/cjs/{sortRoutes.js → router/sortRoutes.js} +0 -0
- /package/dist/cjs/{sortRoutes.native.js → router/sortRoutes.native.js} +0 -0
- /package/dist/cjs/{useNavigation.cjs → router/useNavigation.cjs} +0 -0
- /package/dist/cjs/{useNavigation.js → router/useNavigation.js} +0 -0
- /package/dist/cjs/{useNavigation.native.js → router/useNavigation.native.js} +0 -0
- /package/dist/cjs/{useViteRoutes.cjs → router/useViteRoutes.cjs} +0 -0
- /package/dist/cjs/{useViteRoutes.js → router/useViteRoutes.js} +0 -0
- /package/dist/cjs/{useViteRoutes.native.js → router/useViteRoutes.native.js} +0 -0
- /package/dist/cjs/{platform.cjs → utils/platform.cjs} +0 -0
- /package/dist/cjs/{platform.js → utils/platform.js} +0 -0
- /package/dist/cjs/{platform.native.js → utils/platform.native.js} +0 -0
- /package/dist/esm/{Route.js → router/Route.js} +0 -0
- /package/dist/esm/{Route.mjs → router/Route.mjs} +0 -0
- /package/dist/esm/{Route.native.js → router/Route.native.js} +0 -0
- /package/dist/esm/{matchers.js → router/matchers.js} +0 -0
- /package/dist/esm/{matchers.mjs → router/matchers.mjs} +0 -0
- /package/dist/esm/{matchers.native.js → router/matchers.native.js} +0 -0
- /package/dist/esm/{sortRoutes.js → router/sortRoutes.js} +0 -0
- /package/dist/esm/{sortRoutes.mjs → router/sortRoutes.mjs} +0 -0
- /package/dist/esm/{sortRoutes.native.js → router/sortRoutes.native.js} +0 -0
- /package/dist/esm/{useNavigation.js → router/useNavigation.js} +0 -0
- /package/dist/esm/{useNavigation.mjs → router/useNavigation.mjs} +0 -0
- /package/dist/esm/{useNavigation.native.js → router/useNavigation.native.js} +0 -0
- /package/dist/esm/{useViteRoutes.js → router/useViteRoutes.js} +0 -0
- /package/dist/esm/{useViteRoutes.mjs → router/useViteRoutes.mjs} +0 -0
- /package/dist/esm/{useViteRoutes.native.js → router/useViteRoutes.native.js} +0 -0
- /package/dist/esm/{platform.js → utils/platform.js} +0 -0
- /package/dist/esm/{platform.mjs → utils/platform.mjs} +0 -0
- /package/dist/esm/{platform.native.js → utils/platform.native.js} +0 -0
- /package/src/{matchers.ts → router/matchers.ts} +0 -0
- /package/src/{sortRoutes.ts → router/sortRoutes.ts} +0 -0
- /package/src/{useNavigation.ts → router/useNavigation.ts} +0 -0
- /package/src/{platform.ts → utils/platform.ts} +0 -0
- /package/types/{matchers.d.ts → router/matchers.d.ts} +0 -0
- /package/types/{sortRoutes.d.ts → router/sortRoutes.d.ts} +0 -0
- /package/types/{useNavigation.d.ts → router/useNavigation.d.ts} +0 -0
- /package/types/{useScreens.d.ts → router/useScreens.d.ts} +0 -0
- /package/types/{cleanUrl.d.ts → utils/cleanUrl.d.ts} +0 -0
- /package/types/{platform.d.ts → utils/platform.d.ts} +0 -0
package/src/Root.tsx
CHANGED
@@ -1,4 +1,3 @@
|
|
1
|
-
import { SafeAreaProviderCompat } from '@react-navigation/elements'
|
2
1
|
import {
|
3
2
|
DarkTheme,
|
4
3
|
DefaultTheme,
|
@@ -6,13 +5,14 @@ import {
|
|
6
5
|
type NavigationContainerProps,
|
7
6
|
} from '@react-navigation/native'
|
8
7
|
import { useColorScheme } from '@vxrn/universal-color-scheme'
|
9
|
-
import {
|
10
|
-
import UpstreamNavigationContainer from './fork/NavigationContainer'
|
8
|
+
import { useEffect, useState, type FunctionComponent, type ReactNode } from 'react'
|
9
|
+
import { NavigationContainer as UpstreamNavigationContainer } from './fork/NavigationContainer'
|
11
10
|
import { getURL } from './getURL'
|
12
11
|
import { ServerLocationContext } from './router/serverLocationContext'
|
13
12
|
import { useInitializeOneRouter } from './router/useInitializeOneRouter'
|
14
|
-
import
|
15
|
-
import {
|
13
|
+
import { useViteRoutes } from './router/useViteRoutes'
|
14
|
+
import type { GlobbedRouteImports } from './types'
|
15
|
+
import { getServerContext } from './utils/serverContext'
|
16
16
|
import { PreloadLinks } from './views/PreloadLinks'
|
17
17
|
import { RootErrorBoundary } from './views/RootErrorBoundary'
|
18
18
|
import { ScrollRestoration } from './views/ScrollRestoration'
|
@@ -21,15 +21,19 @@ import type { One } from './vite/types'
|
|
21
21
|
|
22
22
|
if (typeof window !== 'undefined') {
|
23
23
|
// @ts-ignore TODO: hard coded for demo app
|
24
|
-
window.__getReactRefreshIgnoredExports = () => [
|
24
|
+
window.__getReactRefreshIgnoredExports = () => [
|
25
|
+
'feedCardQuery',
|
26
|
+
'feedCardReplyQuery',
|
27
|
+
'loader',
|
28
|
+
]
|
25
29
|
}
|
26
30
|
|
27
|
-
type RootProps =
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
31
|
+
type RootProps = Omit<InnerProps, 'context'> & {
|
32
|
+
path: string
|
33
|
+
isClient?: boolean
|
34
|
+
routes: GlobbedRouteImports
|
35
|
+
routeOptions?: One.RouteOptions
|
36
|
+
}
|
33
37
|
|
34
38
|
type InnerProps = {
|
35
39
|
context: One.RouteContext
|
@@ -51,14 +55,7 @@ type InnerProps = {
|
|
51
55
|
}
|
52
56
|
|
53
57
|
export function Root(props: RootProps) {
|
54
|
-
const {
|
55
|
-
path,
|
56
|
-
routes,
|
57
|
-
routeOptions,
|
58
|
-
wrapper: ParentWrapper = Fragment,
|
59
|
-
isClient,
|
60
|
-
navigationContainerProps,
|
61
|
-
} = props
|
58
|
+
const { path, routes, routeOptions, isClient, navigationContainerProps } = props
|
62
59
|
|
63
60
|
// ⚠️ <StrictMode> breaks routing!
|
64
61
|
const context = useViteRoutes(routes, routeOptions, globalThis['__vxrnVersion'])
|
@@ -72,28 +69,6 @@ export function Root(props: RootProps) {
|
|
72
69
|
|
73
70
|
// const headContext = useMemo(() => globalThis['vxrn__headContext__'] || {}, [])
|
74
71
|
|
75
|
-
/*
|
76
|
-
* Due to static rendering we need to wrap these top level views in second wrapper
|
77
|
-
* View's like <GestureHandlerRootView /> generate a <div> so if the parent wrapper
|
78
|
-
* is a HTML document, we need to ensure its inside the <body>
|
79
|
-
*/
|
80
|
-
const wrapper = (children: any) => {
|
81
|
-
return (
|
82
|
-
<ParentWrapper>
|
83
|
-
{/* default scroll restoration to on, but users can configure it by importing and using themselves */}
|
84
|
-
<ScrollRestoration />
|
85
|
-
{/* <GestureHandlerRootView> */}
|
86
|
-
<SafeAreaProviderCompat>
|
87
|
-
{children}
|
88
|
-
|
89
|
-
{/* Users can override this by adding another StatusBar element anywhere higher in the component tree. */}
|
90
|
-
{/* {!hasViewControllerBasedStatusBarAppearance && <StatusBar style="auto" />} */}
|
91
|
-
</SafeAreaProviderCompat>
|
92
|
-
{/* </GestureHandlerRootView> */}
|
93
|
-
</ParentWrapper>
|
94
|
-
)
|
95
|
-
}
|
96
|
-
|
97
72
|
const Component = store.rootComponent
|
98
73
|
|
99
74
|
if (!Component) {
|
@@ -116,7 +91,21 @@ export function Root(props: RootProps) {
|
|
116
91
|
{...navigationContainerProps}
|
117
92
|
>
|
118
93
|
<ServerLocationContext.Provider value={location}>
|
119
|
-
{
|
94
|
+
{/* <GestureHandlerRootView> */}
|
95
|
+
{/*
|
96
|
+
* Due to static rendering we need to wrap these top level views in second wrapper
|
97
|
+
* View's like <GestureHandlerRootView /> generate a <div> so if the parent wrapper
|
98
|
+
* is a HTML document, we need to ensure its inside the <body>
|
99
|
+
*/}
|
100
|
+
<>
|
101
|
+
{/* default scroll restoration to on, but users can configure it by importing and using themselves */}
|
102
|
+
<ScrollRestoration />
|
103
|
+
<Component />
|
104
|
+
|
105
|
+
{/* Users can override this by adding another StatusBar element anywhere higher in the component tree. */}
|
106
|
+
</>
|
107
|
+
{/* {!hasViewControllerBasedStatusBarAppearance && <StatusBar style="auto" />} */}
|
108
|
+
{/* </GestureHandlerRootView> */}
|
120
109
|
</ServerLocationContext.Provider>
|
121
110
|
</UpstreamNavigationContainer>
|
122
111
|
<PreloadLinks key="preload-links" />
|
@@ -125,7 +114,7 @@ export function Root(props: RootProps) {
|
|
125
114
|
)
|
126
115
|
|
127
116
|
if (isClient) {
|
128
|
-
if (
|
117
|
+
if (getServerContext()?.mode === 'spa') {
|
129
118
|
// eslint-disable-next-line react-hooks/rules-of-hooks
|
130
119
|
const [show, setShow] = useState(false)
|
131
120
|
|
package/src/cli/build.ts
CHANGED
@@ -12,7 +12,7 @@ import {
|
|
12
12
|
build as vxrnBuild,
|
13
13
|
type ClientManifestEntry,
|
14
14
|
} from 'vxrn'
|
15
|
-
import { getLoaderPath, getPreloadPath } from '../cleanUrl'
|
15
|
+
import { getLoaderPath, getPreloadPath } from '../utils/cleanUrl'
|
16
16
|
import * as constants from '../constants'
|
17
17
|
import type { RouteInfo } from '../server/createRoutesManifest'
|
18
18
|
import type { LoaderProps, RenderApp } from '../types'
|
package/src/constants.ts
CHANGED
@@ -10,3 +10,7 @@ export const LOADER_JS_POSTFIX_REGEX = new RegExp(LOADER_JS_POSTFIX_REGEX_STRING
|
|
10
10
|
export const LOADER_JS_POSTFIX = `_${CACHE_KEY}${LOADER_JS_POSTFIX_UNCACHED}`
|
11
11
|
|
12
12
|
export const PRELOAD_JS_POSTFIX = `_${CACHE_KEY}_preload.js`
|
13
|
+
|
14
|
+
// safari insanely aggressive caching
|
15
|
+
export const VIRTUAL_SSR_CSS_ENTRY = `virtual:ssr-css.css`
|
16
|
+
export const VIRTUAL_SSR_CSS_HREF = `/@id/__x00__${VIRTUAL_SSR_CSS_ENTRY}`
|
package/src/createApp.native.tsx
CHANGED
@@ -11,7 +11,7 @@ LogBox.ignoreLogs([/Sending .* with no listeners registered/])
|
|
11
11
|
|
12
12
|
export function createApp(options: CreateAppProps): void {
|
13
13
|
const App = () => {
|
14
|
-
let contents = <Root
|
14
|
+
let contents = <Root isClient routes={options.routes} path="/" />
|
15
15
|
|
16
16
|
// if (process.env.ONE_ENABLE_REACT_SCAN) {
|
17
17
|
// console.warn(`React Scan enabled with options: ${process.env.ONE_ENABLE_REACT_SCAN}`)
|
package/src/createApp.tsx
CHANGED
@@ -6,91 +6,33 @@ import { resolveClientLoader } from './clientLoaderResolver'
|
|
6
6
|
import { render } from './render'
|
7
7
|
import { renderToString } from './server-render'
|
8
8
|
import type { RenderAppProps } from './types'
|
9
|
-
import { rand } from './utils/rand'
|
10
9
|
// @ts-ignore
|
11
10
|
import ReactDOMServer from 'react-dom/server.browser'
|
11
|
+
import {
|
12
|
+
getServerContext,
|
13
|
+
SERVER_CONTEXT_POST_RENDER_STRING,
|
14
|
+
setServerContext,
|
15
|
+
} from './utils/serverContext'
|
12
16
|
|
13
17
|
export type CreateAppProps = { routes: Record<string, () => Promise<unknown>> }
|
14
18
|
|
15
|
-
// replacing Vites since we control the root
|
16
|
-
function DevHead({ ssrID }: { ssrID: string }) {
|
17
|
-
if (process.env.NODE_ENV === 'development') {
|
18
|
-
return (
|
19
|
-
<>
|
20
|
-
<link rel="preload" href={ssrID} as="style" />
|
21
|
-
<link rel="stylesheet" href={ssrID} data-ssr-css />
|
22
|
-
<script
|
23
|
-
type="module"
|
24
|
-
dangerouslySetInnerHTML={{
|
25
|
-
__html: `import { createHotContext } from "/@vite/client";
|
26
|
-
const hot = createHotContext("/__clear_ssr_css");
|
27
|
-
hot.on("vite:afterUpdate", () => {
|
28
|
-
document
|
29
|
-
.querySelectorAll("[data-ssr-css]")
|
30
|
-
.forEach(node => node.remove());
|
31
|
-
});`,
|
32
|
-
}}
|
33
|
-
/>
|
34
|
-
<script
|
35
|
-
type="module"
|
36
|
-
dangerouslySetInnerHTML={{
|
37
|
-
__html: `import { injectIntoGlobalHook } from "/@react-refresh";
|
38
|
-
injectIntoGlobalHook(window);
|
39
|
-
window.$RefreshReg$ = () => {};
|
40
|
-
window.$RefreshSig$ = () => (type) => type;`,
|
41
|
-
}}
|
42
|
-
/>
|
43
|
-
</>
|
44
|
-
)
|
45
|
-
}
|
46
|
-
|
47
|
-
return null
|
48
|
-
}
|
49
|
-
|
50
19
|
export function createApp(options: CreateAppProps) {
|
51
20
|
if (import.meta.env.SSR) {
|
52
21
|
return {
|
53
22
|
options,
|
54
23
|
render: async (props: RenderAppProps) => {
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
<script
|
66
|
-
dangerouslySetInnerHTML={{
|
67
|
-
__html: `globalThis['global'] = globalThis`,
|
68
|
-
}}
|
69
|
-
/>
|
24
|
+
let { loaderData, loaderProps, css, mode, loaderServerData } = props
|
25
|
+
|
26
|
+
setServerContext({
|
27
|
+
postRenderData: loaderServerData,
|
28
|
+
loaderData,
|
29
|
+
loaderProps,
|
30
|
+
mode,
|
31
|
+
css,
|
32
|
+
})
|
70
33
|
|
71
|
-
|
72
|
-
|
73
|
-
})}
|
74
|
-
</head>
|
75
|
-
<body>
|
76
|
-
<Root routes={options.routes} {...props} />
|
77
|
-
</body>
|
78
|
-
{/* could this just be loaded via the same loader.js? as a preload? i think so... */}
|
79
|
-
<script
|
80
|
-
async
|
81
|
-
// @ts-ignore
|
82
|
-
href="one-loader-data"
|
83
|
-
dangerouslySetInnerHTML={{
|
84
|
-
__html: `
|
85
|
-
globalThis['__vxrnPostRenderData__'] = { __vxrn__: 'post-render' };
|
86
|
-
globalThis['__vxrnLoaderData__'] = ${JSON.stringify(loaderData)};
|
87
|
-
globalThis['__vxrnLoaderProps__'] = ${JSON.stringify(loaderProps)};
|
88
|
-
globalThis['__vxrnHydrateMode__'] = ${JSON.stringify(mode)};
|
89
|
-
`,
|
90
|
-
}}
|
91
|
-
/>
|
92
|
-
</html>
|
93
|
-
)
|
34
|
+
const App = () => {
|
35
|
+
return <Root routes={options.routes} {...props} />
|
94
36
|
}
|
95
37
|
|
96
38
|
AppRegistry.registerComponent('App', () => App)
|
@@ -124,11 +66,14 @@ export function createApp(options: CreateAppProps) {
|
|
124
66
|
}
|
125
67
|
|
126
68
|
// now we can grab and serialize in our zero queries
|
127
|
-
const serverData =
|
69
|
+
const serverData = getServerContext()?.postRenderData
|
128
70
|
if (serverData) {
|
129
71
|
const hasQueryData = Object.keys(serverData).length
|
130
72
|
if (hasQueryData) {
|
131
|
-
html = html.replace(
|
73
|
+
html = html.replace(
|
74
|
+
JSON.stringify(SERVER_CONTEXT_POST_RENDER_STRING),
|
75
|
+
JSON.stringify(serverData)
|
76
|
+
)
|
132
77
|
}
|
133
78
|
}
|
134
79
|
|
@@ -142,14 +87,10 @@ export function createApp(options: CreateAppProps) {
|
|
142
87
|
|
143
88
|
return rootLayoutImport
|
144
89
|
.then(() => {
|
145
|
-
resolveClientLoader({
|
146
|
-
loaderData: globalThis['__vxrnLoaderData__'],
|
147
|
-
loaderServerData: globalThis['__vxrnLoaderServerData__'],
|
148
|
-
loaderProps: globalThis['__vxrnLoaderProps__'],
|
149
|
-
})
|
90
|
+
resolveClientLoader(getServerContext() || {})
|
150
91
|
.then(() => {
|
151
92
|
// on client we just render
|
152
|
-
render(<Root
|
93
|
+
render(<Root isClient routes={options.routes} path={window.location.href} />)
|
153
94
|
})
|
154
95
|
.catch((err) => {
|
155
96
|
console.error(`Error running client loader resolver "onClientLoaderResolve":`, err)
|
@@ -1,7 +1,8 @@
|
|
1
|
-
import {
|
1
|
+
import { extname } from 'node:path'
|
2
|
+
import { getPathFromLoaderPath } from './utils/cleanUrl'
|
2
3
|
import { LOADER_JS_POSTFIX_UNCACHED } from './constants'
|
3
4
|
import type { Middleware, MiddlewareContext } from './createMiddleware'
|
4
|
-
import type { RouteNode } from './Route'
|
5
|
+
import type { RouteNode } from './router/Route'
|
5
6
|
import type { RouteInfo, RouteInfoCompiled } from './server/createRoutesManifest'
|
6
7
|
import type { LoaderProps } from './types'
|
7
8
|
import { getHonoPath } from './utils/getHonoPath'
|
@@ -1,40 +1,63 @@
|
|
1
|
-
|
1
|
+
/**
|
2
|
+
* This file is copied from the react-navigation repo:
|
3
|
+
* https://github.com/react-navigation/react-navigation/blob/%40react-navigation/core%407.1.2/packages/core/src/getPathFromState.tsx
|
4
|
+
*
|
5
|
+
* Please refrain from making changes to this file, as it will make merging updates from the upstream harder.
|
6
|
+
* All modifications except formatting should be marked with `// @modified` comment.
|
7
|
+
*/
|
2
8
|
|
3
9
|
import {
|
4
10
|
BaseNavigationContainer,
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
type LinkingOptions,
|
9
|
-
LocaleDirContext,
|
10
|
-
type LocaleDirection,
|
11
|
+
getActionFromState,
|
12
|
+
getPathFromState,
|
13
|
+
getStateFromPath,
|
11
14
|
type NavigationContainerProps,
|
12
15
|
type NavigationContainerRef,
|
16
|
+
type NavigationState,
|
13
17
|
type ParamListBase,
|
14
|
-
type Theme,
|
15
18
|
ThemeProvider,
|
16
|
-
getActionFromState,
|
17
|
-
getPathFromState,
|
18
|
-
getStateFromPath,
|
19
19
|
validatePathConfig,
|
20
|
-
} from '@react-navigation/
|
20
|
+
} from '@react-navigation/core'
|
21
21
|
import * as React from 'react'
|
22
|
-
|
23
|
-
import useLinking from './useLinking'
|
24
22
|
import { I18nManager } from 'react-native'
|
23
|
+
import useLatestCallback from 'use-latest-callback'
|
24
|
+
|
25
|
+
// @modified - start
|
26
|
+
// import { LinkingContext } from './LinkingContext'
|
27
|
+
// import { LocaleDirContext } from './LocaleDirContext'
|
28
|
+
// import { DefaultTheme } from './theming/DefaultTheme'
|
29
|
+
// import type { DocumentTitleOptions, LinkingOptions, LocaleDirection } from './types'
|
30
|
+
// import { UnhandledLinkingContext } from './UnhandledLinkingContext'
|
31
|
+
import {
|
32
|
+
LinkingContext,
|
33
|
+
LocaleDirContext,
|
34
|
+
DefaultTheme,
|
35
|
+
type DocumentTitleOptions,
|
36
|
+
type LinkingOptions,
|
37
|
+
type LocaleDirection,
|
38
|
+
UNSTABLE_UnhandledLinkingContext as UnhandledLinkingContext,
|
39
|
+
} from '@react-navigation/native'
|
40
|
+
// @modified - end
|
25
41
|
import { useBackButton } from './useBackButton'
|
26
42
|
import { useDocumentTitle } from './useDocumentTitle'
|
43
|
+
import { useLinking } from './useLinking'
|
27
44
|
import { useThenable } from './useThenable'
|
28
45
|
|
46
|
+
declare global {
|
47
|
+
// eslint-disable-next-line no-var
|
48
|
+
var REACT_NAVIGATION_DEVTOOLS: WeakMap<
|
49
|
+
NavigationContainerRef<any>,
|
50
|
+
{ readonly linking: LinkingOptions<any> }
|
51
|
+
>
|
52
|
+
}
|
53
|
+
|
29
54
|
globalThis.REACT_NAVIGATION_DEVTOOLS = new WeakMap()
|
30
55
|
|
31
|
-
type Props<ParamList extends
|
56
|
+
type Props<ParamList extends {}> = NavigationContainerProps & {
|
32
57
|
direction?: LocaleDirection
|
33
|
-
documentTitle?: DocumentTitleOptions
|
34
|
-
fallback?: React.ReactNode
|
35
58
|
linking?: LinkingOptions<ParamList>
|
36
|
-
|
37
|
-
|
59
|
+
fallback?: React.ReactNode
|
60
|
+
documentTitle?: DocumentTitleOptions
|
38
61
|
}
|
39
62
|
|
40
63
|
/**
|
@@ -44,7 +67,9 @@ type Props<ParamList extends object> = NavigationContainerProps & {
|
|
44
67
|
* @param props.initialState Initial state object for the navigation tree. When deep link handling is enabled, this will override deep links when specified. Make sure that you don't specify an `initialState` when there's a deep link (`Linking.getInitialURL()`).
|
45
68
|
* @param props.onReady Callback which is called after the navigation tree mounts.
|
46
69
|
* @param props.onStateChange Callback which is called with the latest navigation state when it changes.
|
47
|
-
* @param props.
|
70
|
+
* @param props.onUnhandledAction Callback which is called when an action is not handled.
|
71
|
+
* @param props.direction Text direction of the components. Defaults to `'ltr'`.
|
72
|
+
* @param props.theme Theme object for the UI elements.
|
48
73
|
* @param props.linking Options for deep linking. Deep link handling is enabled when this prop is provided, unless `linking.enabled` is `false`.
|
49
74
|
* @param props.fallback Fallback component to render until we have finished getting initial state when linking is enabled. Defaults to `null`.
|
50
75
|
* @param props.documentTitle Options to configure the document title on Web. Updating document title is handled by default unless `documentTitle.enabled` is `false`.
|
@@ -59,6 +84,7 @@ function NavigationContainerInner(
|
|
59
84
|
fallback = null,
|
60
85
|
documentTitle,
|
61
86
|
onReady,
|
87
|
+
onStateChange,
|
62
88
|
...rest
|
63
89
|
}: Props<ParamListBase>,
|
64
90
|
ref?: React.Ref<NavigationContainerRef<ParamListBase> | null>
|
@@ -74,12 +100,50 @@ function NavigationContainerInner(
|
|
74
100
|
useBackButton(refContainer)
|
75
101
|
useDocumentTitle(refContainer, documentTitle)
|
76
102
|
|
77
|
-
const
|
78
|
-
|
79
|
-
|
80
|
-
|
103
|
+
const [lastUnhandledLink, setLastUnhandledLink] = React.useState<string | undefined>()
|
104
|
+
|
105
|
+
const { getInitialState } = useLinking(
|
106
|
+
refContainer,
|
107
|
+
{
|
108
|
+
enabled: isLinkingEnabled,
|
109
|
+
prefixes: [],
|
110
|
+
...linking,
|
111
|
+
},
|
112
|
+
setLastUnhandledLink
|
113
|
+
)
|
114
|
+
|
115
|
+
const linkingContext = React.useMemo(() => ({ options: linking }), [linking])
|
116
|
+
|
117
|
+
const unhandledLinkingContext = React.useMemo(
|
118
|
+
() => ({ lastUnhandledLink, setLastUnhandledLink }),
|
119
|
+
[lastUnhandledLink, setLastUnhandledLink]
|
120
|
+
)
|
121
|
+
|
122
|
+
const onReadyForLinkingHandling = useLatestCallback(() => {
|
123
|
+
// If the screen path matches lastUnhandledLink, we do not track it
|
124
|
+
const path = refContainer.current?.getCurrentRoute()?.path
|
125
|
+
setLastUnhandledLink((previousLastUnhandledLink) => {
|
126
|
+
if (previousLastUnhandledLink === path) {
|
127
|
+
return undefined
|
128
|
+
}
|
129
|
+
return previousLastUnhandledLink
|
130
|
+
})
|
131
|
+
onReady?.()
|
81
132
|
})
|
82
133
|
|
134
|
+
const onStateChangeForLinkingHandling = useLatestCallback(
|
135
|
+
(state: Readonly<NavigationState> | undefined) => {
|
136
|
+
// If the screen path matches lastUnhandledLink, we do not track it
|
137
|
+
const path = refContainer.current?.getCurrentRoute()?.path
|
138
|
+
setLastUnhandledLink((previousLastUnhandledLink) => {
|
139
|
+
if (previousLastUnhandledLink === path) {
|
140
|
+
return undefined
|
141
|
+
}
|
142
|
+
return previousLastUnhandledLink
|
143
|
+
})
|
144
|
+
onStateChange?.(state)
|
145
|
+
}
|
146
|
+
)
|
83
147
|
// Add additional linking related info to the ref
|
84
148
|
// This will be used by the devtools
|
85
149
|
React.useEffect(() => {
|
@@ -103,38 +167,36 @@ function NavigationContainerInner(
|
|
103
167
|
|
104
168
|
React.useImperativeHandle(ref, () => refContainer.current)
|
105
169
|
|
106
|
-
const
|
170
|
+
const isLinkingReady = rest.initialState != null || !isLinkingEnabled || isResolved
|
107
171
|
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
if (!isResolved) {
|
172
|
+
if (!isLinkingReady) {
|
173
|
+
// This is temporary until we have Suspense for data-fetching
|
174
|
+
// Then the fallback will be handled by a parent `Suspense` component
|
113
175
|
return <ThemeProvider value={theme}>{fallback}</ThemeProvider>
|
114
176
|
}
|
115
177
|
|
116
178
|
return (
|
117
179
|
<LocaleDirContext.Provider value={direction}>
|
118
|
-
<
|
119
|
-
<
|
180
|
+
<UnhandledLinkingContext.Provider value={unhandledLinkingContext}>
|
181
|
+
<LinkingContext.Provider value={linkingContext}>
|
120
182
|
<BaseNavigationContainer
|
121
183
|
{...rest}
|
122
184
|
theme={theme}
|
185
|
+
onReady={onReadyForLinkingHandling}
|
186
|
+
onStateChange={onStateChangeForLinkingHandling}
|
187
|
+
initialState={rest.initialState == null ? initialState : rest.initialState}
|
123
188
|
ref={refContainer}
|
124
|
-
initialState={initialState ?? rest.initialState}
|
125
189
|
/>
|
126
|
-
</
|
127
|
-
</
|
190
|
+
</LinkingContext.Provider>
|
191
|
+
</UnhandledLinkingContext.Provider>
|
128
192
|
</LocaleDirContext.Provider>
|
129
193
|
)
|
130
194
|
}
|
131
195
|
|
132
|
-
const NavigationContainer = React.forwardRef(NavigationContainerInner) as <
|
133
|
-
RootParamList extends
|
196
|
+
export const NavigationContainer = React.forwardRef(NavigationContainerInner) as <
|
197
|
+
RootParamList extends {} = ReactNavigation.RootParamList
|
134
198
|
>(
|
135
199
|
props: Props<RootParamList> & {
|
136
200
|
ref?: React.Ref<NavigationContainerRef<RootParamList>>
|
137
201
|
}
|
138
202
|
) => React.ReactElement
|
139
|
-
|
140
|
-
export default NavigationContainer
|
@@ -1,10 +1,16 @@
|
|
1
|
+
/**
|
2
|
+
* This file is copied from the react-navigation repo:
|
3
|
+
* https://github.com/react-navigation/react-navigation/blob/%40react-navigation/core%407.1.2/packages/native/src/createMemoryHistory.tsx
|
4
|
+
*
|
5
|
+
* Please refrain from making changes to this file, as it will make merging updates from the upstream harder.
|
6
|
+
* All modifications except formatting should be marked with `// @modified` comment.
|
7
|
+
*
|
8
|
+
* No modifications currently, copied only in order to use a custom `useLinking` function.
|
9
|
+
*/
|
10
|
+
|
1
11
|
import type { NavigationState } from '@react-navigation/core'
|
2
12
|
import { nanoid } from 'nanoid/non-secure'
|
3
13
|
|
4
|
-
// forked from @react-navigation/native/src/createMemoryHistory.tsx
|
5
|
-
// NOTE there was a change we made for search params, but we've fixed it upstream
|
6
|
-
// we can revert this back to the react-navigation one if we want
|
7
|
-
|
8
14
|
type HistoryRecord = {
|
9
15
|
// Unique identifier for this record to match it with window.history.state
|
10
16
|
id: string
|
@@ -14,7 +20,7 @@ type HistoryRecord = {
|
|
14
20
|
path: string
|
15
21
|
}
|
16
22
|
|
17
|
-
export
|
23
|
+
export function createMemoryHistory() {
|
18
24
|
let index = 0
|
19
25
|
let items: HistoryRecord[] = []
|
20
26
|
|
@@ -91,12 +97,7 @@ export default function createMemoryHistory() {
|
|
91
97
|
// Need to keep the hash part of the path if there was no previous history entry
|
92
98
|
// or the previous history entry had the same path
|
93
99
|
let pathWithHash = path
|
94
|
-
|
95
|
-
// NOTE: this was the wrong fix
|
96
|
-
// if (window.location.search) {
|
97
|
-
// console.log('replacing!')
|
98
|
-
// pathWithHash = pathWithHash + window.location.search
|
99
|
-
// }
|
100
|
+
const hash = pathWithHash.includes('#') ? '' : location.hash
|
100
101
|
|
101
102
|
if (!items.length || items.findIndex((item) => item.id === id) < 0) {
|
102
103
|
// There are two scenarios for creating an array with only one history record:
|
@@ -105,12 +106,13 @@ export default function createMemoryHistory() {
|
|
105
106
|
// the page when navigating forward in history.
|
106
107
|
// - This is the first time any state modifications are done
|
107
108
|
// So we need to push the entry as there's nothing to replace
|
108
|
-
|
109
|
+
|
110
|
+
pathWithHash = pathWithHash + hash
|
109
111
|
items = [{ path: pathWithHash, state, id }]
|
110
112
|
index = 0
|
111
113
|
} else {
|
112
114
|
if (items[index].path === path) {
|
113
|
-
pathWithHash = pathWithHash +
|
115
|
+
pathWithHash = pathWithHash + hash
|
114
116
|
}
|
115
117
|
items[index] = { path, state, id }
|
116
118
|
}
|