one 1.1.388 → 1.1.390
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 +7 -11
- package/dist/cjs/Root.js +7 -14
- package/dist/cjs/Root.js.map +1 -1
- package/dist/cjs/Root.native.js +22 -15
- 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/getPathFromState.cjs +1 -1
- package/dist/cjs/fork/getPathFromState.js +1 -1
- package/dist/cjs/fork/getPathFromState.native.js +1 -1
- package/dist/cjs/fork/getPathFromState.native.js.map +1 -1
- package/dist/cjs/fork/getStateFromPath.cjs +1 -1
- package/dist/cjs/fork/getStateFromPath.js +1 -1
- package/dist/cjs/fork/getStateFromPath.js.map +1 -1
- package/dist/cjs/fork/getStateFromPath.native.js +1 -1
- package/dist/cjs/fork/getStateFromPath.native.js.map +1 -1
- 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/Tabs.js +32 -28
- package/dist/cjs/layouts/Tabs.js.map +1 -1
- package/dist/cjs/layouts/Tabs.native.js.map +1 -1
- package/dist/cjs/layouts/withLayoutContext.cjs +16 -11
- package/dist/cjs/layouts/withLayoutContext.js +11 -7
- package/dist/cjs/layouts/withLayoutContext.js.map +1 -1
- package/dist/cjs/layouts/withLayoutContext.native.js +10 -7
- package/dist/cjs/layouts/withLayoutContext.native.js.map +2 -2
- package/dist/cjs/link/useLinkTo.cjs +1 -1
- package/dist/cjs/link/useLinkTo.js +1 -1
- package/dist/cjs/link/useLinkTo.native.js +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/{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 +6 -6
- package/dist/cjs/router/router.js +1 -1
- package/dist/cjs/router/router.js.map +1 -1
- package/dist/cjs/router/router.native.js +1 -1
- package/dist/cjs/router/router.native.js.map +1 -1
- 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} +63 -12
- package/dist/cjs/{useScreens.js → router/useScreens.js} +35 -9
- package/dist/cjs/router/useScreens.js.map +6 -0
- package/dist/cjs/{useScreens.native.js → router/useScreens.native.js} +16 -9
- 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/utils/withStaticProperties.cjs +56 -0
- package/dist/cjs/utils/withStaticProperties.js +44 -0
- package/dist/cjs/utils/withStaticProperties.js.map +6 -0
- package/dist/cjs/utils/withStaticProperties.native.js +53 -0
- package/dist/cjs/utils/withStaticProperties.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/one.cjs +1 -27
- package/dist/cjs/vite/one.js +0 -25
- package/dist/cjs/vite/one.js.map +1 -1
- package/dist/cjs/vite/one.native.js +0 -25
- package/dist/cjs/vite/one.native.js.map +1 -1
- 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/vite/plugins/fixDependenciesPlugin.cjs +1 -1
- package/dist/cjs/vite/plugins/fixDependenciesPlugin.js +1 -1
- package/dist/cjs/vite/plugins/fixDependenciesPlugin.js.map +1 -1
- package/dist/cjs/vite/plugins/fixDependenciesPlugin.native.js +1 -1
- package/dist/cjs/vite/plugins/fixDependenciesPlugin.native.js.map +1 -1
- 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 +10 -17
- package/dist/esm/Root.js.map +1 -1
- package/dist/esm/Root.mjs +8 -12
- package/dist/esm/Root.mjs.map +1 -1
- package/dist/esm/Root.native.js +25 -18
- 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/getPathFromState.js +1 -1
- package/dist/esm/fork/getPathFromState.mjs +1 -1
- package/dist/esm/fork/getPathFromState.native.js +1 -1
- package/dist/esm/fork/getStateFromPath.js +1 -1
- package/dist/esm/fork/getStateFromPath.mjs +1 -1
- package/dist/esm/fork/getStateFromPath.native.js +1 -1
- 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/Tabs.js +32 -28
- package/dist/esm/layouts/Tabs.js.map +1 -1
- package/dist/esm/layouts/Tabs.mjs.map +1 -1
- package/dist/esm/layouts/Tabs.native.js.map +1 -1
- package/dist/esm/layouts/withLayoutContext.js +13 -8
- package/dist/esm/layouts/withLayoutContext.js.map +1 -1
- package/dist/esm/layouts/withLayoutContext.mjs +16 -11
- package/dist/esm/layouts/withLayoutContext.mjs.map +1 -1
- package/dist/esm/layouts/withLayoutContext.native.js +12 -8
- package/dist/esm/layouts/withLayoutContext.native.js.map +2 -2
- package/dist/esm/link/useLinkTo.js +1 -1
- package/dist/esm/link/useLinkTo.mjs +1 -1
- package/dist/esm/link/useLinkTo.native.js +1 -1
- 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/{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 +6 -6
- package/dist/esm/router/router.mjs +6 -6
- package/dist/esm/router/router.native.js +6 -6
- 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} +45 -14
- package/dist/esm/router/useScreens.js.map +6 -0
- package/dist/esm/{useScreens.mjs → router/useScreens.mjs} +65 -14
- package/dist/esm/router/useScreens.mjs.map +1 -0
- package/dist/esm/{useScreens.native.js → router/useScreens.native.js} +26 -14
- 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/utils/withStaticProperties.js +20 -0
- package/dist/esm/utils/withStaticProperties.js.map +6 -0
- package/dist/esm/utils/withStaticProperties.mjs +22 -0
- package/dist/esm/utils/withStaticProperties.mjs.map +1 -0
- package/dist/esm/utils/withStaticProperties.native.js +25 -0
- package/dist/esm/utils/withStaticProperties.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/one.js +0 -25
- package/dist/esm/vite/one.js.map +1 -1
- package/dist/esm/vite/one.mjs +1 -27
- package/dist/esm/vite/one.mjs.map +1 -1
- package/dist/esm/vite/one.native.js +0 -25
- package/dist/esm/vite/one.native.js.map +1 -1
- 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/vite/plugins/fixDependenciesPlugin.js +1 -1
- package/dist/esm/vite/plugins/fixDependenciesPlugin.js.map +1 -1
- package/dist/esm/vite/plugins/fixDependenciesPlugin.mjs +1 -1
- package/dist/esm/vite/plugins/fixDependenciesPlugin.mjs.map +1 -1
- package/dist/esm/vite/plugins/fixDependenciesPlugin.native.js +1 -1
- package/dist/esm/vite/plugins/fixDependenciesPlugin.native.js.map +1 -1
- 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 +8 -14
- package/src/Root.tsx +27 -42
- 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/getPathFromState.ts +1 -1
- package/src/fork/getStateFromPath.ts +2 -2
- package/src/getReactNavigationConfig.ts +2 -2
- package/src/hooks.tsx +2 -2
- package/src/index.ts +3 -3
- package/src/layouts/Tabs.tsx +40 -33
- package/src/layouts/withLayoutContext.tsx +16 -21
- package/src/link/useLinkTo.tsx +1 -1
- 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/{getRoutes.ts → router/getRoutes.ts} +5 -5
- package/src/{imperative-api.ts → router/imperative-api.ts} +2 -2
- package/src/router/router.ts +7 -7
- package/src/{useScreens.tsx → router/useScreens.tsx} +78 -54
- 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/utils/withStaticProperties.ts +32 -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/one.ts +0 -28
- package/src/vite/plugins/SSRCSSPlugin.ts +6 -10
- package/src/vite/plugins/fileSystemRouterPlugin.tsx +12 -6
- package/src/vite/plugins/fixDependenciesPlugin.ts +2 -1
- 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/getStateFromPath.d.ts +1 -1
- package/types/fork/getStateFromPath.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/Drawer.d.ts +1 -1
- package/types/layouts/Stack.d.ts +1 -1
- package/types/layouts/Tabs.d.ts +1 -5
- package/types/layouts/Tabs.d.ts.map +1 -1
- package/types/layouts/withLayoutContext.d.ts +5 -4
- package/types/layouts/withLayoutContext.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/{useScreens.d.ts → router/useScreens.d.ts} +3 -1
- 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/utils/withStaticProperties.d.ts +4 -0
- package/types/utils/withStaticProperties.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/one.d.ts.map +1 -1
- 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/vite/plugins/fixDependenciesPlugin.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/{cleanUrl.d.ts → utils/cleanUrl.d.ts} +0 -0
- /package/types/{platform.d.ts → utils/platform.d.ts} +0 -0
@@ -1,10 +1,10 @@
|
|
1
1
|
import type { EventMapBase, NavigationState } from '@react-navigation/native'
|
2
2
|
import React from 'react'
|
3
|
-
|
4
|
-
import { useContextKey } from '../Route'
|
3
|
+
import { useContextKey } from '../router/Route'
|
5
4
|
import type { PickPartial } from '../types'
|
6
|
-
import { useSortedScreens, type ScreenProps } from '../useScreens'
|
5
|
+
import { useSortedScreens, type ScreenProps } from '../router/useScreens'
|
7
6
|
import { Screen } from '../views/Screen'
|
7
|
+
import { withStaticProperties } from '../utils/withStaticProperties'
|
8
8
|
|
9
9
|
export function useFilterScreenChildren(
|
10
10
|
children: React.ReactNode,
|
@@ -19,6 +19,7 @@ export function useFilterScreenChildren(
|
|
19
19
|
) {
|
20
20
|
return React.useMemo(() => {
|
21
21
|
const customChildren: any[] = []
|
22
|
+
|
22
23
|
const screens = React.Children.map(children, (child) => {
|
23
24
|
if (React.isValidElement(child) && child && child.type === Screen) {
|
24
25
|
if (!child.props.name) {
|
@@ -43,7 +44,7 @@ export function useFilterScreenChildren(
|
|
43
44
|
`Layout children must be of type Screen, all other children are ignored. To use custom children, create a custom <Layout />. Update Layout Route at: "app${contextKey}/_layout"`
|
44
45
|
)
|
45
46
|
}
|
46
|
-
})
|
47
|
+
})?.filter(Boolean)
|
47
48
|
|
48
49
|
// Add an assertion for development
|
49
50
|
if (process.env.NODE_ENV !== 'production') {
|
@@ -73,23 +74,19 @@ export function withLayoutContext<
|
|
73
74
|
options: ScreenProps<TOptions, State, EventMap>[]
|
74
75
|
) => ScreenProps<TOptions, State, EventMap>[],
|
75
76
|
options?: { props: any }
|
76
|
-
)
|
77
|
-
|
78
|
-
React.
|
79
|
-
|
80
|
-
Screen: (props: ScreenProps<TOptions, State, EventMap>) => null
|
81
|
-
} {
|
82
|
-
const Navigator = React.forwardRef<unknown, React.ComponentProps<T>>(
|
83
|
-
({ children: userDefinedChildren, ...props }, ref) => {
|
77
|
+
) {
|
78
|
+
return withStaticProperties(
|
79
|
+
React.forwardRef<unknown, PickPartial<React.ComponentProps<T>, 'children'>>((propsIn, ref) => {
|
80
|
+
const { children, ...props } = propsIn as React.ComponentProps<T>
|
84
81
|
const contextKey = useContextKey()
|
85
|
-
|
86
|
-
const { screens } = useFilterScreenChildren(userDefinedChildren, {
|
82
|
+
const { screens } = useFilterScreenChildren(children, {
|
87
83
|
contextKey,
|
88
84
|
})
|
89
85
|
|
90
86
|
const processed = processor ? processor(screens ?? []) : screens
|
91
|
-
|
92
|
-
|
87
|
+
const sorted = useSortedScreens(processed ?? [], {
|
88
|
+
onlyMatching: true,
|
89
|
+
})
|
93
90
|
|
94
91
|
// Prevent throwing an error when there are no screens.
|
95
92
|
if (!sorted.length) {
|
@@ -101,11 +98,9 @@ export function withLayoutContext<
|
|
101
98
|
{sorted}
|
102
99
|
</Nav>
|
103
100
|
)
|
101
|
+
}),
|
102
|
+
{
|
103
|
+
Screen,
|
104
104
|
}
|
105
105
|
)
|
106
|
-
|
107
|
-
// @ts-expect-error
|
108
|
-
Navigator.Screen = Screen
|
109
|
-
// @ts-expect-error
|
110
|
-
return Navigator
|
111
106
|
}
|
package/src/link/useLinkTo.tsx
CHANGED
@@ -3,7 +3,7 @@ import { Platform, type GestureResponderEvent } from 'react-native'
|
|
3
3
|
|
4
4
|
import { appendBaseUrl } from '../fork/getPathFromState'
|
5
5
|
import { useOneRouter } from '../router/router'
|
6
|
-
import { stripGroupSegmentsFromPath } from '../matchers'
|
6
|
+
import { stripGroupSegmentsFromPath } from '../router/matchers'
|
7
7
|
|
8
8
|
function eventShouldPreventDefault(
|
9
9
|
e: React.MouseEvent<HTMLAnchorElement, MouseEvent> | GestureResponderEvent
|
package/src/render.tsx
CHANGED
@@ -9,15 +9,14 @@ export function render(element: React.ReactNode) {
|
|
9
9
|
globalThis['__vxrnVersion']++
|
10
10
|
globalThis['__vxrnRoot'].render(element)
|
11
11
|
} else {
|
12
|
-
// const deferLoad = requestAnimationFrame || setImmediate
|
13
|
-
// deferLoad(() => {
|
14
12
|
startTransition(() => {
|
13
|
+
const rootElement = document as any
|
15
14
|
if (globalThis['__vxrnIsSPA']) {
|
16
|
-
const root = createRoot(
|
15
|
+
const root = createRoot(rootElement)
|
17
16
|
globalThis['__vxrnRoot'] = root
|
18
17
|
root.render(element)
|
19
18
|
} else {
|
20
|
-
globalThis['__vxrnRoot'] = hydrateRoot(
|
19
|
+
globalThis['__vxrnRoot'] = hydrateRoot(rootElement, element, {
|
21
20
|
onRecoverableError(...args) {
|
22
21
|
console.groupCollapsed(
|
23
22
|
`[one] Non-critical recoverable React error occurred, expand group to see details`
|
@@ -35,6 +34,5 @@ export function render(element: React.ReactNode) {
|
|
35
34
|
})
|
36
35
|
}
|
37
36
|
})
|
38
|
-
// })
|
39
37
|
}
|
40
38
|
}
|
@@ -1,8 +1,8 @@
|
|
1
1
|
import React, { createContext, useContext, type ReactNode } from 'react'
|
2
2
|
|
3
3
|
import { getContextKey } from './matchers'
|
4
|
-
import type { ErrorBoundaryProps } from '
|
5
|
-
import type { One } from '
|
4
|
+
import type { ErrorBoundaryProps } from '../views/Try'
|
5
|
+
import type { One } from '../vite/types'
|
6
6
|
|
7
7
|
export type DynamicConvention = { name: string; deep: boolean; notFound?: boolean }
|
8
8
|
|
@@ -1,5 +1,5 @@
|
|
1
|
-
import { useActiveParams, useParams, usePathname } from '
|
2
|
-
import type { OneRouter } from '
|
1
|
+
import { useActiveParams, useParams, usePathname } from '../hooks'
|
2
|
+
import type { OneRouter } from '../interfaces/router'
|
3
3
|
|
4
4
|
export function createRoute<Path>() {
|
5
5
|
type Route = OneRouter.Route<Path>
|
@@ -0,0 +1,81 @@
|
|
1
|
+
import { cloneElement, isValidElement } from 'react'
|
2
|
+
|
3
|
+
type Props = Record<string, any>
|
4
|
+
|
5
|
+
export type FoundRootHTML = {
|
6
|
+
children: React.ReactElement
|
7
|
+
htmlProps?: Props
|
8
|
+
bodyProps?: Props
|
9
|
+
head?: React.ReactElement
|
10
|
+
}
|
11
|
+
|
12
|
+
/**
|
13
|
+
* To enable custom <html> and other html-like stuff in the root _layout
|
14
|
+
* we are doing some fancy stuff, namely, just capturing the root layout return
|
15
|
+
* value and deep-mapping over it.
|
16
|
+
*
|
17
|
+
* On server, we filter it out and hoist it to the parent root html in createApp
|
18
|
+
*
|
19
|
+
* On client, we just filter it out completely as in One we don't hydrate html
|
20
|
+
*/
|
21
|
+
|
22
|
+
export function filterRootHTML(el: React.ReactNode): FoundRootHTML {
|
23
|
+
let htmlProps: Props | undefined
|
24
|
+
let bodyProps: React.ReactElement | undefined
|
25
|
+
let head: React.ReactElement | undefined
|
26
|
+
|
27
|
+
function traverse(element: React.ReactNode) {
|
28
|
+
if (!element || typeof element !== 'object') {
|
29
|
+
return element
|
30
|
+
}
|
31
|
+
if (Array.isArray(element)) {
|
32
|
+
return element.map(traverse)
|
33
|
+
}
|
34
|
+
|
35
|
+
const reactElement = element as React.ReactElement
|
36
|
+
const { type, props } = reactElement
|
37
|
+
|
38
|
+
if (type === 'html') {
|
39
|
+
const { children, ...restProps } = reactElement.props
|
40
|
+
htmlProps = restProps
|
41
|
+
return traverse(children)
|
42
|
+
}
|
43
|
+
|
44
|
+
if (type === 'head') {
|
45
|
+
head = reactElement
|
46
|
+
return null
|
47
|
+
}
|
48
|
+
|
49
|
+
if (type === 'body') {
|
50
|
+
const { children, ...restProps } = reactElement.props
|
51
|
+
bodyProps = restProps
|
52
|
+
return children
|
53
|
+
}
|
54
|
+
|
55
|
+
if (process.env.TAMAGUI_TARGET === 'native') {
|
56
|
+
if (
|
57
|
+
isValidElement(element) &&
|
58
|
+
typeof element.type === 'string' &&
|
59
|
+
element.type.toLowerCase() === element.type
|
60
|
+
) {
|
61
|
+
// filter out things like <meta /> etc on native
|
62
|
+
// because it could just be thown in <html> or a fragment to be hoisted on web
|
63
|
+
return null
|
64
|
+
}
|
65
|
+
}
|
66
|
+
|
67
|
+
return element
|
68
|
+
}
|
69
|
+
|
70
|
+
const children =
|
71
|
+
traverse(el) ||
|
72
|
+
// if none found, we assume they aren't returning any html so just pass it on
|
73
|
+
el
|
74
|
+
|
75
|
+
return {
|
76
|
+
children,
|
77
|
+
htmlProps,
|
78
|
+
bodyProps,
|
79
|
+
head,
|
80
|
+
}
|
81
|
+
}
|
@@ -1,8 +1,13 @@
|
|
1
1
|
import { getActionFromState, type LinkingOptions } from '@react-navigation/native'
|
2
2
|
import type { RouteNode } from './Route'
|
3
|
-
import type { State } from '
|
4
|
-
import { getReactNavigationConfig, type Screen } from '
|
5
|
-
import {
|
3
|
+
import type { State } from '../fork/getPathFromState'
|
4
|
+
import { getReactNavigationConfig, type Screen } from '../getReactNavigationConfig'
|
5
|
+
import {
|
6
|
+
addEventListener,
|
7
|
+
getInitialURL,
|
8
|
+
getPathFromState,
|
9
|
+
getStateFromPath,
|
10
|
+
} from '../link/linking'
|
6
11
|
|
7
12
|
export function getNavigationConfig(
|
8
13
|
routes: RouteNode,
|
@@ -1,4 +1,4 @@
|
|
1
|
-
import { getDefaultRenderMode } from '
|
1
|
+
import { getDefaultRenderMode } from '../config'
|
2
2
|
import {
|
3
3
|
matchArrayGroupName,
|
4
4
|
matchDeepDynamicRouteName,
|
@@ -7,8 +7,8 @@ import {
|
|
7
7
|
removeSupportedExtensions,
|
8
8
|
} from './matchers'
|
9
9
|
import type { DynamicConvention, RouteNode } from './Route'
|
10
|
-
import { getPageExport } from '
|
11
|
-
import type { One } from '
|
10
|
+
import { getPageExport } from '../utils/getPageExport'
|
11
|
+
import type { One } from '../vite/types'
|
12
12
|
// import { Unmatched } from './views/Unmatched'
|
13
13
|
|
14
14
|
export type Options = {
|
@@ -242,7 +242,7 @@ function getDirectoryTree(contextModule: One.RouteContext, options: Options) {
|
|
242
242
|
{
|
243
243
|
type: 'layout',
|
244
244
|
loadRoute: () => ({
|
245
|
-
default: (require('
|
245
|
+
default: (require('../views/Navigator') as typeof import('../views/Navigator'))
|
246
246
|
.DefaultNavigator,
|
247
247
|
}),
|
248
248
|
// Generate a fake file name for the directory
|
@@ -481,7 +481,7 @@ function appendSitemapRoute(directory: DirectoryNode) {
|
|
481
481
|
{
|
482
482
|
loadRoute() {
|
483
483
|
// console.warn(`Loading sitemap`)
|
484
|
-
// const { Sitemap, getNavOptions } = require('
|
484
|
+
// const { Sitemap, getNavOptions } = require('../views/Sitemap')
|
485
485
|
// return { default: Sitemap, getNavOptions }
|
486
486
|
return { default: () => null, getNavOptions: () => {} }
|
487
487
|
},
|
package/src/router/router.ts
CHANGED
@@ -8,19 +8,19 @@ import * as Linking from 'expo-linking'
|
|
8
8
|
import { nanoid } from 'nanoid/non-secure'
|
9
9
|
import { Fragment, startTransition, useSyncExternalStore, type ComponentType } from 'react'
|
10
10
|
import { Platform } from 'react-native'
|
11
|
-
import type { RouteNode } from '
|
12
|
-
import { getLoaderPath, getPreloadPath } from '../cleanUrl'
|
11
|
+
import type { RouteNode } from './Route'
|
12
|
+
import { getLoaderPath, getPreloadPath } from '../utils/cleanUrl'
|
13
13
|
import type { State } from '../fork/getPathFromState'
|
14
14
|
import { deepEqual, getPathDataFromState } from '../fork/getPathFromState'
|
15
15
|
import { stripBaseUrl } from '../fork/getStateFromPath'
|
16
|
-
import { getLinkingConfig, type OneLinkingOptions } from '
|
17
|
-
import { getRoutes } from '
|
16
|
+
import { getLinkingConfig, type OneLinkingOptions } from './getLinkingConfig'
|
17
|
+
import { getRoutes } from './getRoutes'
|
18
18
|
import type { OneRouter } from '../interfaces/router'
|
19
19
|
import { resolveHref } from '../link/href'
|
20
20
|
import { resolve } from '../link/path'
|
21
|
-
import { matchDynamicName } from '
|
22
|
-
import { sortRoutes } from '
|
23
|
-
import { getQualifiedRouteComponent } from '
|
21
|
+
import { matchDynamicName } from './matchers'
|
22
|
+
import { sortRoutes } from './sortRoutes'
|
23
|
+
import { getQualifiedRouteComponent } from './useScreens'
|
24
24
|
import { assertIsReady } from '../utils/assertIsReady'
|
25
25
|
import { dynamicImport } from '../utils/dynamicImport'
|
26
26
|
import { removeSearch } from '../utils/removeSearch'
|
@@ -1,4 +1,5 @@
|
|
1
1
|
import { createNavigatorFactory } from '@react-navigation/core'
|
2
|
+
import { SafeAreaProviderCompat } from '@react-navigation/elements'
|
2
3
|
import type {
|
3
4
|
EventMapBase,
|
4
5
|
NavigationState,
|
@@ -6,7 +7,15 @@ import type {
|
|
6
7
|
RouteProp,
|
7
8
|
ScreenListeners,
|
8
9
|
} from '@react-navigation/native'
|
9
|
-
import React, { Suspense, useEffect } from 'react'
|
10
|
+
import React, { forwardRef, Suspense, useEffect } from 'react'
|
11
|
+
import { getPageExport } from '../utils/getPageExport'
|
12
|
+
import { getServerContext, ServerContextScript } from '../utils/serverContext'
|
13
|
+
import { useConstant } from '../utils/useConstant'
|
14
|
+
import { EmptyRoute } from '../views/EmptyRoute'
|
15
|
+
import { RootErrorBoundary } from '../views/RootErrorBoundary'
|
16
|
+
import { Try } from '../views/Try'
|
17
|
+
import { DevHead } from '../vite/DevHead'
|
18
|
+
import { filterRootHTML } from './filterRootHTML'
|
10
19
|
import {
|
11
20
|
Route,
|
12
21
|
useRouteNode,
|
@@ -15,10 +24,6 @@ import {
|
|
15
24
|
type RouteNode,
|
16
25
|
} from './Route'
|
17
26
|
import { sortRoutesWithInitial } from './sortRoutes'
|
18
|
-
import { getPageExport } from './utils/getPageExport'
|
19
|
-
import { EmptyRoute } from './views/EmptyRoute'
|
20
|
-
import { RootErrorBoundary } from './views/RootErrorBoundary'
|
21
|
-
import { Try } from './views/Try'
|
22
27
|
|
23
28
|
// `@react-navigation/core` does not expose the Screen or Group components directly, so we have to
|
24
29
|
// do this hack.
|
@@ -52,13 +57,15 @@ export type ScreenProps<
|
|
52
57
|
function getSortedChildren(
|
53
58
|
children: RouteNode[],
|
54
59
|
order?: ScreenProps[],
|
55
|
-
initialRouteName?: string
|
60
|
+
initialRouteName?: string,
|
61
|
+
options?: { onlyMatching?: boolean }
|
56
62
|
): { route: RouteNode; props: Partial<ScreenProps> }[] {
|
57
63
|
if (!order?.length) {
|
58
64
|
return children
|
59
65
|
.sort(sortRoutesWithInitial(initialRouteName))
|
60
66
|
.map((route) => ({ route, props: {} }))
|
61
67
|
}
|
68
|
+
|
62
69
|
const entries = [...children]
|
63
70
|
|
64
71
|
const ordered = order
|
@@ -98,9 +105,13 @@ function getSortedChildren(
|
|
98
105
|
}[]
|
99
106
|
|
100
107
|
// Add any remaining children
|
101
|
-
|
102
|
-
|
103
|
-
|
108
|
+
if (!options?.onlyMatching) {
|
109
|
+
ordered.push(
|
110
|
+
...entries
|
111
|
+
.sort(sortRoutesWithInitial(initialRouteName))
|
112
|
+
.map((route) => ({ route, props: {} }))
|
113
|
+
)
|
114
|
+
}
|
104
115
|
|
105
116
|
return ordered
|
106
117
|
}
|
@@ -108,12 +119,15 @@ function getSortedChildren(
|
|
108
119
|
/**
|
109
120
|
* @returns React Navigation screens sorted by the `route` property.
|
110
121
|
*/
|
111
|
-
export function useSortedScreens(
|
122
|
+
export function useSortedScreens(
|
123
|
+
order: ScreenProps[],
|
124
|
+
options?: { onlyMatching?: boolean }
|
125
|
+
): React.ReactNode[] {
|
112
126
|
const node = useRouteNode()
|
113
127
|
|
114
128
|
const sortedScreens = React.useMemo(() => {
|
115
129
|
const sorted = node?.children?.length
|
116
|
-
? getSortedChildren(node.children, order, node.initialRouteName)
|
130
|
+
? getSortedChildren(node.children, order, node.initialRouteName, options)
|
117
131
|
: []
|
118
132
|
|
119
133
|
return sorted.map((value) => routeToScreen(value.route, value.props))
|
@@ -154,52 +168,63 @@ export function getQualifiedRouteComponent(value: RouteNode) {
|
|
154
168
|
return qualifiedStore.get(value)!
|
155
169
|
}
|
156
170
|
|
157
|
-
let ScreenComponent: React.ForwardRefExoticComponent<
|
158
|
-
|
159
|
-
// if (One_ROUTER_IMPORT_MODE === 'lazy') {
|
160
|
-
// ScreenComponent = React.forwardRef((props, ref) => {
|
161
|
-
// // for native avoid suspense for now
|
162
|
-
// const [loaded, setLoaded] = useState<any>(null)
|
163
|
-
|
164
|
-
// useEffect(() => {
|
165
|
-
// try {
|
166
|
-
// const found = value.loadRoute()
|
167
|
-
// if (found) {
|
168
|
-
// setLoaded(found)
|
169
|
-
// }
|
170
|
-
// } catch (err) {
|
171
|
-
// if (err instanceof Promise) {
|
172
|
-
// err
|
173
|
-
// .then((res) => {
|
174
|
-
// setLoaded(res)
|
175
|
-
// })
|
176
|
-
// .catch((err) => {
|
177
|
-
// console.error(`Error loading route`, err)
|
178
|
-
// })
|
179
|
-
// } else {
|
180
|
-
// setLoaded(err as any)
|
181
|
-
// }
|
182
|
-
// }
|
183
|
-
// }, [])
|
184
|
-
|
185
|
-
// if (loaded) {
|
186
|
-
// const Component = getPageExport(fromImport(loaded)) as React.ComponentType<any>
|
187
|
-
// return (
|
188
|
-
// // <Suspense fallback={null}>
|
189
|
-
// <Component {...props} ref={ref} />
|
190
|
-
// // </Suspense>
|
191
|
-
// )
|
192
|
-
// }
|
193
|
-
|
194
|
-
// return null
|
195
|
-
// })
|
196
|
-
// } else {
|
171
|
+
let ScreenComponent: React.ForwardRefExoticComponent<{ segment: string; key?: string }>
|
172
|
+
|
197
173
|
ScreenComponent = React.forwardRef((props, ref) => {
|
198
174
|
const res = value.loadRoute()
|
199
|
-
const Component =
|
175
|
+
const Component = useConstant(() => {
|
176
|
+
const BaseComponent = getPageExport(fromImport(res)) as React.ComponentType<any>
|
177
|
+
const serverContext = getServerContext()
|
178
|
+
|
179
|
+
// root layout do special html handling only
|
180
|
+
if (props.segment === '') {
|
181
|
+
return forwardRef((props, ref) => {
|
182
|
+
// @ts-expect-error
|
183
|
+
const out = BaseComponent(props, ref)
|
184
|
+
const { children, bodyProps, head, htmlProps } = filterRootHTML(out)
|
185
|
+
const { children: headChildren, ...headProps } = head?.props || {}
|
186
|
+
|
187
|
+
if (process.env.TAMAGUI_TARGET === 'native') {
|
188
|
+
// on native we just ignore all html/body/head
|
189
|
+
return children
|
190
|
+
}
|
191
|
+
|
192
|
+
const contents = (
|
193
|
+
<>
|
194
|
+
<head key="head" {...headProps}>
|
195
|
+
<DevHead />
|
196
|
+
<script
|
197
|
+
dangerouslySetInnerHTML={{
|
198
|
+
__html: `globalThis['global'] = globalThis`,
|
199
|
+
}}
|
200
|
+
/>
|
201
|
+
{serverContext?.css?.map((file) => {
|
202
|
+
return <link key={file} rel="stylesheet" href={file} />
|
203
|
+
})}
|
204
|
+
<ServerContextScript />
|
205
|
+
{headChildren}
|
206
|
+
</head>
|
207
|
+
<body key="body" suppressHydrationWarning {...bodyProps}>
|
208
|
+
<SafeAreaProviderCompat>{children}</SafeAreaProviderCompat>
|
209
|
+
</body>
|
210
|
+
</>
|
211
|
+
)
|
212
|
+
|
213
|
+
return (
|
214
|
+
// tamagui and libraries can add className on hydration to have ssr safe styling
|
215
|
+
// so supress hydration warnings here
|
216
|
+
<html suppressHydrationWarning lang="en-US" {...htmlProps}>
|
217
|
+
{contents}
|
218
|
+
</html>
|
219
|
+
)
|
220
|
+
})
|
221
|
+
}
|
222
|
+
|
223
|
+
return BaseComponent
|
224
|
+
})
|
200
225
|
|
201
226
|
if (process.env.NODE_ENV === 'development' && process.env.DEBUG === 'one') {
|
202
|
-
console.groupCollapsed(`Render ${props.key}`)
|
227
|
+
console.groupCollapsed(`Render ${props.key} ${props.segment}`)
|
203
228
|
console.info(`res`, res)
|
204
229
|
console.info(`value`, value)
|
205
230
|
console.info(`fromImport`, fromImport(res))
|
@@ -213,7 +238,6 @@ export function getQualifiedRouteComponent(value: RouteNode) {
|
|
213
238
|
// </Suspense>
|
214
239
|
)
|
215
240
|
})
|
216
|
-
// }
|
217
241
|
|
218
242
|
const wrapSuspense = (children: any) => {
|
219
243
|
if (process.env.TAMAGUI_TARGET === 'native') {
|
@@ -1,9 +1,9 @@
|
|
1
|
-
import { type Options, getRoutes } from '../getRoutes'
|
1
|
+
import { type Options, getRoutes } from '../router/getRoutes'
|
2
2
|
import { getServerManifest } from './getServerManifest'
|
3
|
-
import type { RouteNode } from '../Route'
|
3
|
+
import type { RouteNode } from '../router/Route'
|
4
4
|
import type { One } from '../vite/types'
|
5
5
|
|
6
|
-
export { type Options } from '../getRoutes'
|
6
|
+
export { type Options } from '../router/getRoutes'
|
7
7
|
|
8
8
|
export type RouteInfo<TRegex = string> = {
|
9
9
|
file: string
|
@@ -8,9 +8,9 @@
|
|
8
8
|
*
|
9
9
|
* Based on https://github.com/vercel/next.js/blob/1df2686bc9964f1a86c444701fa5cbf178669833/packages/next/src/shared/lib/router/utils/route-regex.ts
|
10
10
|
*/
|
11
|
-
import type { RouteNode } from '../Route'
|
12
|
-
import { getContextKey, matchGroupName } from '../matchers'
|
13
|
-
import { sortRoutes } from '../sortRoutes'
|
11
|
+
import type { RouteNode } from '../router/Route'
|
12
|
+
import { getContextKey, matchGroupName } from '../router/matchers'
|
13
|
+
import { sortRoutes } from '../router/sortRoutes'
|
14
14
|
import type { One } from '../vite/types'
|
15
15
|
|
16
16
|
// TODO: Share these types across cli, server, router, etc.
|
package/src/server/oneServe.ts
CHANGED
@@ -2,7 +2,7 @@ import type { Hono, MiddlewareHandler } from 'hono'
|
|
2
2
|
import type { BlankEnv } from 'hono/types'
|
3
3
|
import { extname, join } from 'node:path'
|
4
4
|
import { getServerEntry } from 'vxrn/serve'
|
5
|
-
import { getPathFromLoaderPath } from '../cleanUrl'
|
5
|
+
import { getPathFromLoaderPath } from '../utils/cleanUrl'
|
6
6
|
import { LOADER_JS_POSTFIX_UNCACHED } from '../constants'
|
7
7
|
import { compileManifest, getURLfromRequestURL, type RequestHandlers } from '../createHandleRequest'
|
8
8
|
import type { RenderAppProps } from '../types'
|
@@ -1,7 +1,7 @@
|
|
1
1
|
import FSExtra from 'fs-extra'
|
2
2
|
import { writeFile } from 'node:fs/promises'
|
3
3
|
import { dirname } from 'node:path'
|
4
|
-
import { globbedRoutesToRouteContext } from '../useViteRoutes'
|
4
|
+
import { globbedRoutesToRouteContext } from '../router/useViteRoutes'
|
5
5
|
import { globDir } from '../utils/globDir'
|
6
6
|
import { getTypedRoutesDeclarationFile } from './getTypedRoutesDeclarationFile'
|
7
7
|
|
@@ -1,6 +1,6 @@
|
|
1
|
-
import { getRoutes } from '../getRoutes'
|
2
|
-
import { isTypedRoute, removeSupportedExtensions } from '../matchers'
|
3
|
-
import type { RouteNode } from '../Route'
|
1
|
+
import { getRoutes } from '../router/getRoutes'
|
2
|
+
import { isTypedRoute, removeSupportedExtensions } from '../router/matchers'
|
3
|
+
import type { RouteNode } from '../router/Route'
|
4
4
|
import type { One } from '../vite/types'
|
5
5
|
|
6
6
|
// /[...param1]/ - Match [...param1]
|
package/src/useLoader.ts
CHANGED
@@ -1,9 +1,9 @@
|
|
1
1
|
/* eslint-disable react-hooks/rules-of-hooks */
|
2
2
|
import { useEffect, useRef } from 'react'
|
3
|
-
import { getLoaderPath } from './cleanUrl'
|
3
|
+
import { getLoaderPath } from './utils/cleanUrl'
|
4
4
|
import { useActiveParams, useParams } from './hooks'
|
5
5
|
import { resolveHref } from './link/href'
|
6
|
-
import { useRouteNode } from './Route'
|
6
|
+
import { useRouteNode } from './router/Route'
|
7
7
|
import { preloadingLoader } from './router/router'
|
8
8
|
import type { LoaderProps } from './types'
|
9
9
|
import { dynamicImport } from './utils/dynamicImport'
|
@@ -3,9 +3,9 @@ import {
|
|
3
3
|
LOADER_JS_POSTFIX,
|
4
4
|
LOADER_JS_POSTFIX_REGEX,
|
5
5
|
PRELOAD_JS_POSTFIX,
|
6
|
-
} from '
|
7
|
-
import { getURL } from '
|
8
|
-
import { removeSearch } from './
|
6
|
+
} from '../constants'
|
7
|
+
import { getURL } from '../getURL'
|
8
|
+
import { removeSearch } from './removeSearch'
|
9
9
|
|
10
10
|
function cleanUrl(path: string) {
|
11
11
|
return (
|
package/src/utils/redirect.ts
CHANGED
@@ -0,0 +1,52 @@
|
|
1
|
+
type ServerContext = {
|
2
|
+
css?: string[]
|
3
|
+
postRenderData?: any
|
4
|
+
loaderData?: any
|
5
|
+
loaderProps?: any
|
6
|
+
mode?: 'spa' | 'ssg' | 'ssr'
|
7
|
+
}
|
8
|
+
|
9
|
+
type MaybeServerContext = null | ServerContext
|
10
|
+
|
11
|
+
export const SERVER_CONTEXT_POST_RENDER_STRING = `_one_post_render_data_`
|
12
|
+
const SERVER_CONTEXT_KEY = '__one_server_context__'
|
13
|
+
const isClient = typeof document !== 'undefined'
|
14
|
+
|
15
|
+
let serverContext: MaybeServerContext = globalThis[SERVER_CONTEXT_KEY] || null
|
16
|
+
|
17
|
+
export function setServerContext(c: ServerContext) {
|
18
|
+
if (isClient) {
|
19
|
+
serverContext ||= {
|
20
|
+
postRenderData: SERVER_CONTEXT_POST_RENDER_STRING,
|
21
|
+
}
|
22
|
+
Object.assign(serverContext, c)
|
23
|
+
} else {
|
24
|
+
globalThis[SERVER_CONTEXT_KEY] = c
|
25
|
+
}
|
26
|
+
}
|
27
|
+
|
28
|
+
export function getServerContext() {
|
29
|
+
if (isClient) {
|
30
|
+
return serverContext
|
31
|
+
}
|
32
|
+
return globalThis[SERVER_CONTEXT_KEY] as MaybeServerContext
|
33
|
+
}
|
34
|
+
|
35
|
+
export function ServerContextScript() {
|
36
|
+
const context = getServerContext()
|
37
|
+
if (!context) {
|
38
|
+
throw new Error(`no server context, internal one bug`)
|
39
|
+
}
|
40
|
+
return (
|
41
|
+
<script
|
42
|
+
async
|
43
|
+
// @ts-ignore
|
44
|
+
href={SERVER_CONTEXT_KEY}
|
45
|
+
dangerouslySetInnerHTML={{
|
46
|
+
__html: `
|
47
|
+
globalThis["${SERVER_CONTEXT_KEY}"] = ${JSON.stringify(context)};
|
48
|
+
`,
|
49
|
+
}}
|
50
|
+
/>
|
51
|
+
)
|
52
|
+
}
|