one 1.2.57 → 1.2.59
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/cli/build.cjs +3 -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 +13 -12
- package/dist/cjs/cli/build.native.js.map +1 -1
- package/dist/cjs/cli/buildPage.cjs +1 -1
- package/dist/cjs/cli/buildPage.js +1 -1
- package/dist/cjs/cli/buildPage.native.js +2 -2
- package/dist/cjs/cli/buildPage.native.js.map +1 -1
- package/dist/cjs/cli/dev.cjs +4 -4
- package/dist/cjs/cli/dev.js +4 -4
- package/dist/cjs/cli/dev.js.map +1 -1
- package/dist/cjs/cli/dev.native.js +4 -4
- package/dist/cjs/cli/dev.native.js.map +1 -1
- package/dist/cjs/cli/generateRoutes.cjs +1 -1
- package/dist/cjs/cli/generateRoutes.js +1 -1
- package/dist/cjs/cli/generateRoutes.native.js +1 -1
- package/dist/cjs/cli/generateRoutes.native.js.map +1 -1
- package/dist/cjs/cli/generateSitemap.native.js +7 -7
- package/dist/cjs/cli/generateSitemap.native.js.map +1 -1
- package/dist/cjs/config.native.js +2 -2
- package/dist/cjs/config.native.js.map +1 -1
- package/dist/cjs/constants.native.js +1 -1
- package/dist/cjs/constants.native.js.map +1 -1
- package/dist/cjs/createApp.cjs +2 -1
- package/dist/cjs/createApp.js +2 -2
- package/dist/cjs/createApp.js.map +1 -1
- package/dist/cjs/createHandleRequest.test.js +3 -1
- package/dist/cjs/createHandleRequest.test.js.map +1 -1
- package/dist/cjs/createHandleRequest.test.native.js.map +1 -1
- package/dist/cjs/devtools/registry.cjs +30 -0
- package/dist/cjs/devtools/registry.js +25 -0
- package/dist/cjs/devtools/registry.js.map +6 -0
- package/dist/cjs/devtools/registry.native.js +33 -0
- package/dist/cjs/devtools/registry.native.js.map +1 -0
- package/dist/cjs/fork/NavigationContainer.native.js +5 -5
- package/dist/cjs/fork/NavigationContainer.native.js.map +1 -1
- package/dist/cjs/fork/createMemoryHistory.cjs +20 -9
- package/dist/cjs/fork/createMemoryHistory.js +22 -4
- package/dist/cjs/fork/createMemoryHistory.js.map +1 -1
- package/dist/cjs/fork/createMemoryHistory.native.js +22 -11
- package/dist/cjs/fork/createMemoryHistory.native.js.map +1 -1
- package/dist/cjs/fork/extractPathFromURL.native.js +8 -8
- package/dist/cjs/fork/extractPathFromURL.native.js.map +1 -1
- package/dist/cjs/fork/findFocusedRoute.native.js +2 -3
- package/dist/cjs/fork/findFocusedRoute.native.js.map +1 -1
- package/dist/cjs/fork/getPathFromState-mods.native.js +2 -3
- package/dist/cjs/fork/getPathFromState-mods.native.js.map +1 -1
- package/dist/cjs/fork/getStateFromPath-mods.native.js +3 -3
- package/dist/cjs/fork/getStateFromPath-mods.native.js.map +1 -1
- package/dist/cjs/fork/useLinking.cjs +11 -5
- package/dist/cjs/fork/useLinking.js +6 -6
- package/dist/cjs/fork/useLinking.js.map +1 -1
- package/dist/cjs/fork/useLinking.native.js.map +1 -1
- package/dist/cjs/head/url.native.js +2 -3
- package/dist/cjs/head/url.native.js.map +1 -1
- package/dist/cjs/hooks.js.map +1 -1
- package/dist/cjs/hooks.native.js.map +1 -1
- package/dist/cjs/index.cjs +17 -1
- package/dist/cjs/index.js +12 -2
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/index.native.js +17 -1
- package/dist/cjs/index.native.js.map +1 -1
- package/dist/cjs/layouts/withLayoutContext.cjs +34 -15
- package/dist/cjs/layouts/withLayoutContext.js +29 -13
- package/dist/cjs/layouts/withLayoutContext.js.map +1 -1
- package/dist/cjs/layouts/withLayoutContext.native.js +42 -19
- package/dist/cjs/layouts/withLayoutContext.native.js.map +1 -1
- package/dist/cjs/link/Link.cjs +5 -2
- package/dist/cjs/link/Link.js +3 -2
- package/dist/cjs/link/Link.js.map +1 -1
- package/dist/cjs/link/Link.native.js +6 -1
- package/dist/cjs/link/Link.native.js.map +1 -1
- package/dist/cjs/link/href.native.js +2 -2
- package/dist/cjs/link/href.native.js.map +1 -1
- package/dist/cjs/link/useLinkTo.cjs +11 -3
- package/dist/cjs/link/useLinkTo.js +6 -3
- package/dist/cjs/link/useLinkTo.js.map +1 -1
- package/dist/cjs/link/useLinkTo.native.js +11 -3
- package/dist/cjs/link/useLinkTo.native.js.map +1 -1
- package/dist/cjs/router/Route.js.map +1 -1
- package/dist/cjs/router/Route.native.js.map +1 -1
- package/dist/cjs/router/findRouteNode.cjs +70 -0
- package/dist/cjs/router/findRouteNode.js +72 -0
- package/dist/cjs/router/findRouteNode.js.map +6 -0
- package/dist/cjs/router/findRouteNode.native.js +104 -0
- package/dist/cjs/router/findRouteNode.native.js.map +1 -0
- package/dist/cjs/router/getRoutes.native.js +3 -3
- package/dist/cjs/router/getRoutes.native.js.map +1 -1
- package/dist/cjs/router/router.cjs +160 -11
- package/dist/cjs/router/router.js +142 -7
- package/dist/cjs/router/router.js.map +2 -2
- package/dist/cjs/router/router.native.js +247 -67
- package/dist/cjs/router/router.native.js.map +1 -1
- package/dist/cjs/router/useNavigation.js.map +1 -1
- package/dist/cjs/router/useNavigation.native.js.map +1 -1
- package/dist/cjs/router/useScreens.cjs +1 -1
- package/dist/cjs/router/useScreens.js +1 -1
- package/dist/cjs/router/useScreens.js.map +1 -1
- package/dist/cjs/router/useScreens.native.js +6 -3
- package/dist/cjs/router/useScreens.native.js.map +1 -1
- package/dist/cjs/router/utils/getNavigateAction.native.js +2 -4
- package/dist/cjs/router/utils/getNavigateAction.native.js.map +1 -1
- package/dist/cjs/server/oneServe.js.map +1 -1
- package/dist/cjs/server/oneServe.native.js +4 -4
- package/dist/cjs/server/oneServe.native.js.map +1 -1
- package/dist/cjs/server/setupBuildOptions.native.js +1 -1
- package/dist/cjs/server/setupBuildOptions.native.js.map +1 -1
- package/dist/cjs/ui/common.native.js +6 -5
- package/dist/cjs/ui/common.native.js.map +1 -1
- package/dist/cjs/useBlocker.cjs +158 -0
- package/dist/cjs/useBlocker.js +145 -0
- package/dist/cjs/useBlocker.js.map +6 -0
- package/dist/cjs/useBlocker.native.js +89 -0
- package/dist/cjs/useBlocker.native.js.map +1 -0
- package/dist/cjs/useFocusEffect.cjs +2 -2
- package/dist/cjs/useFocusEffect.js +2 -2
- package/dist/cjs/useFocusEffect.js.map +1 -1
- package/dist/cjs/useFocusEffect.native.js +2 -2
- package/dist/cjs/useFocusEffect.native.js.map +1 -1
- package/dist/cjs/useLoader.cjs +69 -3
- package/dist/cjs/useLoader.js +57 -4
- package/dist/cjs/useLoader.js.map +2 -2
- package/dist/cjs/useLoader.native.js +90 -6
- package/dist/cjs/useLoader.native.js.map +1 -1
- package/dist/cjs/useScrollGroup.cjs +37 -0
- package/dist/cjs/useScrollGroup.js +30 -0
- package/dist/cjs/useScrollGroup.js.map +6 -0
- package/dist/cjs/useScrollGroup.native.js +29 -0
- package/dist/cjs/useScrollGroup.native.js.map +1 -0
- package/dist/cjs/validateParams.cjs +80 -0
- package/dist/cjs/validateParams.js +84 -0
- package/dist/cjs/validateParams.js.map +6 -0
- package/dist/cjs/validateParams.native.js +180 -0
- package/dist/cjs/validateParams.native.js.map +1 -0
- package/dist/cjs/validateSearch.cjs +104 -0
- package/dist/cjs/validateSearch.js +99 -0
- package/dist/cjs/validateSearch.js.map +6 -0
- package/dist/cjs/validateSearch.native.js +202 -0
- package/dist/cjs/validateSearch.native.js.map +1 -0
- package/dist/cjs/vercel/build/buildVercelOutputDirectory.native.js +2 -2
- package/dist/cjs/vercel/build/buildVercelOutputDirectory.native.js.map +1 -1
- package/dist/cjs/views/ErrorBoundary.cjs +293 -10
- package/dist/cjs/views/ErrorBoundary.js +328 -8
- package/dist/cjs/views/ErrorBoundary.js.map +2 -2
- package/dist/cjs/views/ErrorBoundary.native.js +159 -4
- package/dist/cjs/views/ErrorBoundary.native.js.map +1 -1
- package/dist/cjs/views/Navigator.cjs +10 -3
- package/dist/cjs/views/Navigator.js +11 -3
- package/dist/cjs/views/Navigator.js.map +1 -1
- package/dist/cjs/views/Navigator.native.js +15 -6
- package/dist/cjs/views/Navigator.native.js.map +1 -1
- package/dist/cjs/views/Protected.cjs +36 -0
- package/dist/cjs/views/Protected.js +27 -0
- package/dist/cjs/views/Protected.js.map +6 -0
- package/dist/cjs/views/Protected.native.js +44 -0
- package/dist/cjs/views/Protected.native.js.map +1 -0
- package/dist/cjs/views/RootErrorBoundary.cjs +193 -8
- package/dist/cjs/views/RootErrorBoundary.js +213 -8
- package/dist/cjs/views/RootErrorBoundary.js.map +1 -1
- package/dist/cjs/views/RootErrorBoundary.native.js +192 -8
- package/dist/cjs/views/RootErrorBoundary.native.js.map +1 -1
- package/dist/cjs/views/ScrollBehavior.cjs +49 -11
- package/dist/cjs/views/ScrollBehavior.js +47 -11
- package/dist/cjs/views/ScrollBehavior.js.map +1 -1
- package/dist/cjs/views/ScrollBehavior.native.js +68 -10
- package/dist/cjs/views/ScrollBehavior.native.js.map +1 -1
- package/dist/cjs/views/SourceInspector.cjs +28 -0
- package/dist/cjs/views/SourceInspector.js +23 -0
- package/dist/cjs/views/SourceInspector.js.map +6 -0
- package/dist/cjs/views/SourceInspector.native.js +32 -0
- package/dist/cjs/views/SourceInspector.native.js.map +1 -0
- package/dist/cjs/views/Try.cjs +40 -7
- package/dist/cjs/views/Try.js +38 -4
- package/dist/cjs/views/Try.js.map +1 -1
- package/dist/cjs/views/Try.native.js +42 -7
- package/dist/cjs/views/Try.native.js.map +1 -1
- package/dist/cjs/vite/DevHead.cjs +797 -43
- package/dist/cjs/vite/DevHead.js +802 -51
- package/dist/cjs/vite/DevHead.js.map +1 -1
- package/dist/cjs/vite/DevHead.native.js +783 -1
- package/dist/cjs/vite/DevHead.native.js.map +1 -1
- package/dist/cjs/vite/one.cjs +7 -1
- package/dist/cjs/vite/one.js +7 -2
- package/dist/cjs/vite/one.js.map +1 -1
- package/dist/cjs/vite/one.native.js +17 -7
- package/dist/cjs/vite/one.native.js.map +1 -1
- package/dist/cjs/vite/plugins/SSRCSSPlugin.cjs +44 -4
- package/dist/cjs/vite/plugins/SSRCSSPlugin.js +48 -4
- package/dist/cjs/vite/plugins/SSRCSSPlugin.js.map +1 -1
- package/dist/cjs/vite/plugins/SSRCSSPlugin.native.js +62 -5
- package/dist/cjs/vite/plugins/SSRCSSPlugin.native.js.map +1 -1
- package/dist/cjs/vite/plugins/clientTreeShakePlugin.cjs +34 -15
- package/dist/cjs/vite/plugins/clientTreeShakePlugin.js +24 -3
- package/dist/cjs/vite/plugins/clientTreeShakePlugin.js.map +1 -1
- package/dist/cjs/vite/plugins/clientTreeShakePlugin.native.js +55 -19
- package/dist/cjs/vite/plugins/clientTreeShakePlugin.native.js.map +1 -1
- package/dist/cjs/vite/plugins/clientTreeShakePlugin.test.cjs +129 -0
- package/dist/cjs/vite/plugins/clientTreeShakePlugin.test.js +129 -0
- package/dist/cjs/vite/plugins/clientTreeShakePlugin.test.js.map +6 -0
- package/dist/cjs/vite/plugins/clientTreeShakePlugin.test.native.js +140 -0
- package/dist/cjs/vite/plugins/clientTreeShakePlugin.test.native.js.map +1 -0
- package/dist/cjs/vite/plugins/fileSystemRouterPlugin.js +6 -3
- package/dist/cjs/vite/plugins/fileSystemRouterPlugin.js.map +1 -1
- package/dist/cjs/vite/plugins/fileSystemRouterPlugin.native.js +3 -3
- package/dist/cjs/vite/plugins/fileSystemRouterPlugin.native.js.map +1 -1
- package/dist/cjs/vite/plugins/generateFileSystemRouteTypesPlugin.cjs +5 -1
- package/dist/cjs/vite/plugins/generateFileSystemRouteTypesPlugin.js +11 -6
- package/dist/cjs/vite/plugins/generateFileSystemRouteTypesPlugin.js.map +1 -1
- package/dist/cjs/vite/plugins/generateFileSystemRouteTypesPlugin.native.js +1 -0
- package/dist/cjs/vite/plugins/generateFileSystemRouteTypesPlugin.native.js.map +1 -1
- package/dist/cjs/vite/plugins/sourceInspectorPlugin.cjs +155 -0
- package/dist/cjs/vite/plugins/sourceInspectorPlugin.js +148 -0
- package/dist/cjs/vite/plugins/sourceInspectorPlugin.js.map +6 -0
- package/dist/cjs/vite/plugins/sourceInspectorPlugin.native.js +231 -0
- package/dist/cjs/vite/plugins/sourceInspectorPlugin.native.js.map +1 -0
- package/dist/cjs/vite/plugins/virtualEntryPlugin.cjs +25 -6
- package/dist/cjs/vite/plugins/virtualEntryPlugin.js +16 -6
- package/dist/cjs/vite/plugins/virtualEntryPlugin.js.map +1 -1
- package/dist/cjs/vite/plugins/virtualEntryPlugin.native.js +26 -7
- package/dist/cjs/vite/plugins/virtualEntryPlugin.native.js.map +1 -1
- package/dist/esm/cli/build.js +1 -1
- package/dist/esm/cli/build.js.map +1 -1
- package/dist/esm/cli/build.mjs +3 -1
- package/dist/esm/cli/build.mjs.map +1 -1
- package/dist/esm/cli/build.native.js +13 -12
- package/dist/esm/cli/build.native.js.map +1 -1
- package/dist/esm/cli/buildPage.js +1 -1
- package/dist/esm/cli/buildPage.mjs +1 -1
- package/dist/esm/cli/buildPage.mjs.map +1 -1
- package/dist/esm/cli/buildPage.native.js +2 -2
- package/dist/esm/cli/buildPage.native.js.map +1 -1
- package/dist/esm/cli/dev.js +4 -4
- package/dist/esm/cli/dev.js.map +1 -1
- package/dist/esm/cli/dev.mjs +4 -4
- package/dist/esm/cli/dev.mjs.map +1 -1
- package/dist/esm/cli/dev.native.js +4 -4
- package/dist/esm/cli/dev.native.js.map +1 -1
- package/dist/esm/cli/generateRoutes.js +1 -1
- package/dist/esm/cli/generateRoutes.mjs +1 -1
- package/dist/esm/cli/generateRoutes.mjs.map +1 -1
- package/dist/esm/cli/generateRoutes.native.js +1 -1
- package/dist/esm/cli/generateRoutes.native.js.map +1 -1
- package/dist/esm/cli/generateSitemap.native.js +7 -7
- package/dist/esm/cli/generateSitemap.native.js.map +1 -1
- package/dist/esm/config.native.js +2 -2
- package/dist/esm/config.native.js.map +1 -1
- package/dist/esm/constants.native.js +2 -2
- package/dist/esm/constants.native.js.map +1 -1
- package/dist/esm/createApp.js +2 -2
- package/dist/esm/createApp.js.map +1 -1
- package/dist/esm/createApp.mjs +2 -1
- package/dist/esm/createApp.mjs.map +1 -1
- package/dist/esm/createHandleRequest.test.js +3 -1
- package/dist/esm/createHandleRequest.test.js.map +1 -1
- package/dist/esm/createHandleRequest.test.mjs.map +1 -1
- package/dist/esm/createHandleRequest.test.native.js.map +1 -1
- package/dist/esm/devtools/registry.js +9 -0
- package/dist/esm/devtools/registry.js.map +6 -0
- package/dist/esm/devtools/registry.mjs +6 -0
- package/dist/esm/devtools/registry.mjs.map +1 -0
- package/dist/esm/devtools/registry.native.js +6 -0
- package/dist/esm/devtools/registry.native.js.map +1 -0
- package/dist/esm/fork/NavigationContainer.native.js +5 -5
- package/dist/esm/fork/NavigationContainer.native.js.map +1 -1
- package/dist/esm/fork/createMemoryHistory.js +22 -4
- package/dist/esm/fork/createMemoryHistory.js.map +1 -1
- package/dist/esm/fork/createMemoryHistory.mjs +20 -9
- package/dist/esm/fork/createMemoryHistory.mjs.map +1 -1
- package/dist/esm/fork/createMemoryHistory.native.js +22 -11
- package/dist/esm/fork/createMemoryHistory.native.js.map +1 -1
- package/dist/esm/fork/extractPathFromURL.native.js +8 -8
- package/dist/esm/fork/extractPathFromURL.native.js.map +1 -1
- package/dist/esm/fork/findFocusedRoute.native.js +2 -3
- package/dist/esm/fork/findFocusedRoute.native.js.map +1 -1
- package/dist/esm/fork/getPathFromState-mods.native.js +2 -3
- package/dist/esm/fork/getPathFromState-mods.native.js.map +1 -1
- package/dist/esm/fork/getStateFromPath-mods.native.js +3 -3
- package/dist/esm/fork/getStateFromPath-mods.native.js.map +1 -1
- package/dist/esm/fork/useLinking.js +6 -5
- package/dist/esm/fork/useLinking.js.map +1 -1
- package/dist/esm/fork/useLinking.mjs +11 -5
- package/dist/esm/fork/useLinking.mjs.map +1 -1
- package/dist/esm/fork/useLinking.native.js.map +1 -1
- package/dist/esm/head/url.native.js +2 -3
- package/dist/esm/head/url.native.js.map +1 -1
- package/dist/esm/hooks.js.map +1 -1
- package/dist/esm/hooks.mjs.map +1 -1
- package/dist/esm/hooks.native.js.map +1 -1
- package/dist/esm/index.js +30 -2
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/index.mjs +8 -2
- package/dist/esm/index.mjs.map +1 -1
- package/dist/esm/index.native.js +8 -2
- package/dist/esm/index.native.js.map +1 -1
- package/dist/esm/layouts/withLayoutContext.js +30 -12
- package/dist/esm/layouts/withLayoutContext.js.map +1 -1
- package/dist/esm/layouts/withLayoutContext.mjs +34 -15
- package/dist/esm/layouts/withLayoutContext.mjs.map +1 -1
- package/dist/esm/layouts/withLayoutContext.native.js +42 -19
- package/dist/esm/layouts/withLayoutContext.native.js.map +1 -1
- package/dist/esm/link/Link.js +3 -2
- package/dist/esm/link/Link.js.map +1 -1
- package/dist/esm/link/Link.mjs +5 -2
- package/dist/esm/link/Link.mjs.map +1 -1
- package/dist/esm/link/Link.native.js +6 -1
- package/dist/esm/link/Link.native.js.map +1 -1
- package/dist/esm/link/href.native.js +2 -2
- package/dist/esm/link/href.native.js.map +1 -1
- package/dist/esm/link/useLinkTo.js +6 -3
- package/dist/esm/link/useLinkTo.js.map +1 -1
- package/dist/esm/link/useLinkTo.mjs +11 -3
- package/dist/esm/link/useLinkTo.mjs.map +1 -1
- package/dist/esm/link/useLinkTo.native.js +11 -3
- package/dist/esm/link/useLinkTo.native.js.map +1 -1
- package/dist/esm/router/Route.js.map +1 -1
- package/dist/esm/router/Route.mjs.map +1 -1
- package/dist/esm/router/Route.native.js.map +1 -1
- package/dist/esm/router/findRouteNode.js +56 -0
- package/dist/esm/router/findRouteNode.js.map +6 -0
- package/dist/esm/router/findRouteNode.mjs +44 -0
- package/dist/esm/router/findRouteNode.mjs.map +1 -0
- package/dist/esm/router/findRouteNode.native.js +75 -0
- package/dist/esm/router/findRouteNode.native.js.map +1 -0
- package/dist/esm/router/getRoutes.native.js +3 -3
- package/dist/esm/router/getRoutes.native.js.map +1 -1
- package/dist/esm/router/router.js +154 -6
- package/dist/esm/router/router.js.map +1 -1
- package/dist/esm/router/router.mjs +151 -10
- package/dist/esm/router/router.mjs.map +1 -1
- package/dist/esm/router/router.native.js +238 -66
- package/dist/esm/router/router.native.js.map +1 -1
- package/dist/esm/router/useNavigation.js.map +1 -1
- package/dist/esm/router/useNavigation.mjs.map +1 -1
- package/dist/esm/router/useNavigation.native.js.map +1 -1
- package/dist/esm/router/useScreens.js +1 -1
- package/dist/esm/router/useScreens.js.map +1 -1
- package/dist/esm/router/useScreens.mjs +1 -1
- package/dist/esm/router/useScreens.mjs.map +1 -1
- package/dist/esm/router/useScreens.native.js +6 -3
- package/dist/esm/router/useScreens.native.js.map +1 -1
- package/dist/esm/router/utils/getNavigateAction.native.js +2 -4
- package/dist/esm/router/utils/getNavigateAction.native.js.map +1 -1
- package/dist/esm/server/oneServe.js.map +1 -1
- package/dist/esm/server/oneServe.mjs.map +1 -1
- package/dist/esm/server/oneServe.native.js +4 -4
- package/dist/esm/server/oneServe.native.js.map +1 -1
- package/dist/esm/server/setupBuildOptions.native.js +1 -1
- package/dist/esm/server/setupBuildOptions.native.js.map +1 -1
- package/dist/esm/ui/common.native.js +6 -5
- package/dist/esm/ui/common.native.js.map +1 -1
- package/dist/esm/useBlocker.js +122 -0
- package/dist/esm/useBlocker.js.map +6 -0
- package/dist/esm/useBlocker.mjs +123 -0
- package/dist/esm/useBlocker.mjs.map +1 -0
- package/dist/esm/useBlocker.native.js +51 -0
- package/dist/esm/useBlocker.native.js.map +1 -0
- package/dist/esm/useFocusEffect.js +2 -2
- package/dist/esm/useFocusEffect.js.map +1 -1
- package/dist/esm/useFocusEffect.mjs +2 -2
- package/dist/esm/useFocusEffect.mjs.map +1 -1
- package/dist/esm/useFocusEffect.native.js +2 -2
- package/dist/esm/useFocusEffect.native.js.map +1 -1
- package/dist/esm/useLoader.js +57 -3
- package/dist/esm/useLoader.js.map +2 -2
- package/dist/esm/useLoader.mjs +69 -4
- package/dist/esm/useLoader.mjs.map +1 -1
- package/dist/esm/useLoader.native.js +90 -7
- package/dist/esm/useLoader.native.js.map +1 -1
- package/dist/esm/useScrollGroup.js +16 -0
- package/dist/esm/useScrollGroup.js.map +6 -0
- package/dist/esm/useScrollGroup.mjs +14 -0
- package/dist/esm/useScrollGroup.mjs.map +1 -0
- package/dist/esm/useScrollGroup.native.js +3 -0
- package/dist/esm/useScrollGroup.native.js.map +1 -0
- package/dist/esm/validateParams.js +68 -0
- package/dist/esm/validateParams.js.map +6 -0
- package/dist/esm/validateParams.mjs +54 -0
- package/dist/esm/validateParams.mjs.map +1 -0
- package/dist/esm/validateParams.native.js +151 -0
- package/dist/esm/validateParams.native.js.map +1 -0
- package/dist/esm/validateSearch.js +83 -0
- package/dist/esm/validateSearch.js.map +6 -0
- package/dist/esm/validateSearch.mjs +77 -0
- package/dist/esm/validateSearch.mjs.map +1 -0
- package/dist/esm/validateSearch.native.js +172 -0
- package/dist/esm/validateSearch.native.js.map +1 -0
- package/dist/esm/vercel/build/buildVercelOutputDirectory.native.js +2 -2
- package/dist/esm/vercel/build/buildVercelOutputDirectory.native.js.map +1 -1
- package/dist/esm/views/ErrorBoundary.js +325 -7
- package/dist/esm/views/ErrorBoundary.js.map +2 -2
- package/dist/esm/views/ErrorBoundary.mjs +289 -6
- package/dist/esm/views/ErrorBoundary.mjs.map +1 -1
- package/dist/esm/views/ErrorBoundary.native.js +159 -4
- package/dist/esm/views/ErrorBoundary.native.js.map +1 -1
- package/dist/esm/views/Navigator.js +11 -2
- package/dist/esm/views/Navigator.js.map +1 -1
- package/dist/esm/views/Navigator.mjs +10 -3
- package/dist/esm/views/Navigator.mjs.map +1 -1
- package/dist/esm/views/Navigator.native.js +15 -6
- package/dist/esm/views/Navigator.native.js.map +1 -1
- package/dist/esm/views/Protected.js +14 -0
- package/dist/esm/views/Protected.js.map +6 -0
- package/dist/esm/views/Protected.mjs +11 -0
- package/dist/esm/views/Protected.mjs.map +1 -0
- package/dist/esm/views/Protected.native.js +16 -0
- package/dist/esm/views/Protected.native.js.map +1 -0
- package/dist/esm/views/RootErrorBoundary.js +214 -7
- package/dist/esm/views/RootErrorBoundary.js.map +1 -1
- package/dist/esm/views/RootErrorBoundary.mjs +192 -7
- package/dist/esm/views/RootErrorBoundary.mjs.map +1 -1
- package/dist/esm/views/RootErrorBoundary.native.js +191 -7
- package/dist/esm/views/RootErrorBoundary.native.js.map +1 -1
- package/dist/esm/views/ScrollBehavior.js +47 -11
- package/dist/esm/views/ScrollBehavior.js.map +1 -1
- package/dist/esm/views/ScrollBehavior.mjs +48 -11
- package/dist/esm/views/ScrollBehavior.mjs.map +1 -1
- package/dist/esm/views/ScrollBehavior.native.js +67 -10
- package/dist/esm/views/ScrollBehavior.native.js.map +1 -1
- package/dist/esm/views/SourceInspector.js +7 -0
- package/dist/esm/views/SourceInspector.js.map +6 -0
- package/dist/esm/views/SourceInspector.mjs +5 -0
- package/dist/esm/views/SourceInspector.mjs.map +1 -0
- package/dist/esm/views/SourceInspector.native.js +6 -0
- package/dist/esm/views/SourceInspector.native.js.map +1 -0
- package/dist/esm/views/Try.js +38 -4
- package/dist/esm/views/Try.js.map +1 -1
- package/dist/esm/views/Try.mjs +40 -7
- package/dist/esm/views/Try.mjs.map +1 -1
- package/dist/esm/views/Try.native.js +42 -7
- package/dist/esm/views/Try.native.js.map +1 -1
- package/dist/esm/vite/DevHead.js +802 -51
- package/dist/esm/vite/DevHead.js.map +1 -1
- package/dist/esm/vite/DevHead.mjs +797 -43
- package/dist/esm/vite/DevHead.mjs.map +1 -1
- package/dist/esm/vite/DevHead.native.js +782 -0
- package/dist/esm/vite/DevHead.native.js.map +1 -1
- package/dist/esm/vite/one.js +7 -1
- package/dist/esm/vite/one.js.map +1 -1
- package/dist/esm/vite/one.mjs +7 -1
- package/dist/esm/vite/one.mjs.map +1 -1
- package/dist/esm/vite/one.native.js +17 -7
- package/dist/esm/vite/one.native.js.map +1 -1
- package/dist/esm/vite/plugins/SSRCSSPlugin.js +48 -4
- package/dist/esm/vite/plugins/SSRCSSPlugin.js.map +1 -1
- package/dist/esm/vite/plugins/SSRCSSPlugin.mjs +44 -4
- package/dist/esm/vite/plugins/SSRCSSPlugin.mjs.map +1 -1
- package/dist/esm/vite/plugins/SSRCSSPlugin.native.js +61 -4
- package/dist/esm/vite/plugins/SSRCSSPlugin.native.js.map +1 -1
- package/dist/esm/vite/plugins/clientTreeShakePlugin.js +24 -3
- package/dist/esm/vite/plugins/clientTreeShakePlugin.js.map +1 -1
- package/dist/esm/vite/plugins/clientTreeShakePlugin.mjs +34 -15
- package/dist/esm/vite/plugins/clientTreeShakePlugin.mjs.map +1 -1
- package/dist/esm/vite/plugins/clientTreeShakePlugin.native.js +55 -19
- package/dist/esm/vite/plugins/clientTreeShakePlugin.native.js.map +1 -1
- package/dist/esm/vite/plugins/clientTreeShakePlugin.test.js +130 -0
- package/dist/esm/vite/plugins/clientTreeShakePlugin.test.js.map +6 -0
- package/dist/esm/vite/plugins/clientTreeShakePlugin.test.mjs +130 -0
- package/dist/esm/vite/plugins/clientTreeShakePlugin.test.mjs.map +1 -0
- package/dist/esm/vite/plugins/clientTreeShakePlugin.test.native.js +138 -0
- package/dist/esm/vite/plugins/clientTreeShakePlugin.test.native.js.map +1 -0
- package/dist/esm/vite/plugins/fileSystemRouterPlugin.js +6 -3
- package/dist/esm/vite/plugins/fileSystemRouterPlugin.js.map +1 -1
- package/dist/esm/vite/plugins/fileSystemRouterPlugin.mjs.map +1 -1
- package/dist/esm/vite/plugins/fileSystemRouterPlugin.native.js +3 -3
- package/dist/esm/vite/plugins/fileSystemRouterPlugin.native.js.map +1 -1
- package/dist/esm/vite/plugins/generateFileSystemRouteTypesPlugin.js +11 -6
- package/dist/esm/vite/plugins/generateFileSystemRouteTypesPlugin.js.map +1 -1
- package/dist/esm/vite/plugins/generateFileSystemRouteTypesPlugin.mjs +5 -1
- package/dist/esm/vite/plugins/generateFileSystemRouteTypesPlugin.mjs.map +1 -1
- package/dist/esm/vite/plugins/generateFileSystemRouteTypesPlugin.native.js +1 -0
- package/dist/esm/vite/plugins/generateFileSystemRouteTypesPlugin.native.js.map +1 -1
- package/dist/esm/vite/plugins/sourceInspectorPlugin.js +126 -0
- package/dist/esm/vite/plugins/sourceInspectorPlugin.js.map +6 -0
- package/dist/esm/vite/plugins/sourceInspectorPlugin.mjs +121 -0
- package/dist/esm/vite/plugins/sourceInspectorPlugin.mjs.map +1 -0
- package/dist/esm/vite/plugins/sourceInspectorPlugin.native.js +194 -0
- package/dist/esm/vite/plugins/sourceInspectorPlugin.native.js.map +1 -0
- package/dist/esm/vite/plugins/virtualEntryPlugin.js +16 -6
- package/dist/esm/vite/plugins/virtualEntryPlugin.js.map +1 -1
- package/dist/esm/vite/plugins/virtualEntryPlugin.mjs +25 -6
- package/dist/esm/vite/plugins/virtualEntryPlugin.mjs.map +1 -1
- package/dist/esm/vite/plugins/virtualEntryPlugin.native.js +26 -7
- package/dist/esm/vite/plugins/virtualEntryPlugin.native.js.map +1 -1
- package/package.json +16 -14
- package/src/cli/build.ts +1 -1
- package/src/cli/buildPage.ts +1 -1
- package/src/cli/dev.ts +4 -4
- package/src/cli/generateRoutes.ts +1 -1
- package/src/createApp.tsx +11 -1
- package/src/createHandleRequest.test.ts +3 -1
- package/src/devtools/registry.ts +21 -0
- package/src/fork/createMemoryHistory.tsx +43 -11
- package/src/fork/useLinking.ts +14 -4
- package/src/hooks.tsx +71 -21
- package/src/index.ts +34 -1
- package/src/interfaces/router.ts +48 -0
- package/src/layouts/withLayoutContext.tsx +48 -8
- package/src/link/Link.tsx +7 -2
- package/src/link/useLinkTo.tsx +7 -3
- package/src/router/Route.tsx +32 -3
- package/src/router/findRouteNode.ts +127 -0
- package/src/router/router.ts +291 -2
- package/src/router/useNavigation.ts +12 -3
- package/src/router/useScreens.tsx +9 -3
- package/src/useBlocker.native.ts +153 -0
- package/src/useBlocker.ts +340 -0
- package/src/useFocusEffect.ts +18 -5
- package/src/useLoader.ts +193 -2
- package/src/useScrollGroup.native.ts +7 -0
- package/src/useScrollGroup.ts +35 -0
- package/src/validateParams.ts +196 -0
- package/src/validateSearch.ts +241 -0
- package/src/views/ErrorBoundary.tsx +154 -156
- package/src/views/ErrorBoundary.web.tsx +321 -0
- package/src/views/Navigator.tsx +18 -2
- package/src/views/Protected.tsx +62 -0
- package/src/views/RootErrorBoundary.tsx +214 -17
- package/src/views/ScrollBehavior.tsx +82 -3
- package/src/views/SourceInspector.tsx +39 -0
- package/src/views/Try.tsx +81 -12
- package/src/vite/DevHead.tsx +819 -54
- package/src/vite/one.ts +13 -0
- package/src/vite/plugins/SSRCSSPlugin.ts +104 -0
- package/src/vite/plugins/clientTreeShakePlugin.test.ts +174 -0
- package/src/vite/plugins/clientTreeShakePlugin.ts +50 -4
- package/src/vite/plugins/fileSystemRouterPlugin.tsx +11 -8
- package/src/vite/plugins/generateFileSystemRouteTypesPlugin.tsx +4 -0
- package/src/vite/plugins/sourceInspectorPlugin.ts +246 -0
- package/src/vite/plugins/virtualEntryPlugin.ts +36 -10
- package/src/vite/types.ts +28 -0
- package/types/createApp.d.ts +5 -0
- package/types/createApp.d.ts.map +1 -1
- package/types/devtools/registry.d.ts +15 -0
- package/types/devtools/registry.d.ts.map +1 -0
- package/types/fork/createMemoryHistory.d.ts +8 -3
- package/types/fork/createMemoryHistory.d.ts.map +1 -1
- package/types/fork/useLinking.d.ts.map +1 -1
- package/types/hooks.d.ts +71 -20
- package/types/hooks.d.ts.map +1 -1
- package/types/index.d.ts +8 -1
- package/types/index.d.ts.map +1 -1
- package/types/interfaces/router.d.ts +47 -0
- package/types/interfaces/router.d.ts.map +1 -1
- package/types/layouts/Drawer.d.ts +15 -11
- package/types/layouts/Drawer.d.ts.map +1 -1
- package/types/layouts/withLayoutContext.d.ts +2 -1
- package/types/layouts/withLayoutContext.d.ts.map +1 -1
- package/types/link/Link.d.ts.map +1 -1
- package/types/link/useLinkTo.d.ts +1 -0
- package/types/link/useLinkTo.d.ts.map +1 -1
- package/types/router/Route.d.ts +32 -3
- package/types/router/Route.d.ts.map +1 -1
- package/types/router/findRouteNode.d.ts +31 -0
- package/types/router/findRouteNode.d.ts.map +1 -0
- package/types/router/router.d.ts +35 -0
- package/types/router/router.d.ts.map +1 -1
- package/types/router/useNavigation.d.ts +12 -3
- package/types/router/useNavigation.d.ts.map +1 -1
- package/types/router/useScreens.d.ts +2 -0
- package/types/router/useScreens.d.ts.map +1 -1
- package/types/server/oneServe.d.ts.map +1 -1
- package/types/ui/TabContext.d.ts +1 -1
- package/types/ui/TabContext.d.ts.map +1 -1
- package/types/ui/Tabs.d.ts +2 -2
- package/types/ui/Tabs.d.ts.map +1 -1
- package/types/useBlocker.d.ts +72 -0
- package/types/useBlocker.d.ts.map +1 -0
- package/types/useBlocker.native.d.ts +60 -0
- package/types/useBlocker.native.d.ts.map +1 -0
- package/types/useFocusEffect.d.ts +17 -4
- package/types/useFocusEffect.d.ts.map +1 -1
- package/types/useLoader.d.ts +63 -0
- package/types/useLoader.d.ts.map +1 -1
- package/types/useScrollGroup.d.ts +18 -0
- package/types/useScrollGroup.d.ts.map +1 -0
- package/types/useScrollGroup.native.d.ts +6 -0
- package/types/useScrollGroup.native.d.ts.map +1 -0
- package/types/validateParams.d.ts +85 -0
- package/types/validateParams.d.ts.map +1 -0
- package/types/validateSearch.d.ts +107 -0
- package/types/validateSearch.d.ts.map +1 -0
- package/types/views/ErrorBoundary.d.ts +11 -1
- package/types/views/ErrorBoundary.d.ts.map +1 -1
- package/types/views/ErrorBoundary.web.d.ts +13 -0
- package/types/views/ErrorBoundary.web.d.ts.map +1 -0
- package/types/views/Navigator.d.ts.map +1 -1
- package/types/views/Protected.d.ts +39 -0
- package/types/views/Protected.d.ts.map +1 -0
- package/types/views/RootErrorBoundary.d.ts +14 -8
- package/types/views/RootErrorBoundary.d.ts.map +1 -1
- package/types/views/ScrollBehavior.d.ts +8 -0
- package/types/views/ScrollBehavior.d.ts.map +1 -1
- package/types/views/SourceInspector.d.ts +35 -0
- package/types/views/SourceInspector.d.ts.map +1 -0
- package/types/views/Try.d.ts +29 -6
- package/types/views/Try.d.ts.map +1 -1
- package/types/vite/DevHead.d.ts.map +1 -1
- package/types/vite/one.d.ts.map +1 -1
- package/types/vite/plugins/SSRCSSPlugin.d.ts.map +1 -1
- package/types/vite/plugins/clientTreeShakePlugin.d.ts.map +1 -1
- package/types/vite/plugins/clientTreeShakePlugin.test.d.ts +2 -0
- package/types/vite/plugins/clientTreeShakePlugin.test.d.ts.map +1 -0
- package/types/vite/plugins/fileSystemRouterPlugin.d.ts.map +1 -1
- package/types/vite/plugins/generateFileSystemRouteTypesPlugin.d.ts.map +1 -1
- package/types/vite/plugins/sourceInspectorPlugin.d.ts +3 -0
- package/types/vite/plugins/sourceInspectorPlugin.d.ts.map +1 -0
- package/types/vite/plugins/virtualEntryPlugin.d.ts.map +1 -1
- package/types/vite/types.d.ts +24 -0
- package/types/vite/types.d.ts.map +1 -1
- package/types/env.d.ts +0 -66
- /package/types/vercel/build/generate/{createSSRServerlessFunction.d.ts → createSsrServerlessFunction.d.ts} +0 -0
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import { Platform } from "react-native-web";
|
|
3
|
+
let currentLocation = typeof window < "u" ? window.location.pathname + window.location.search : "", isBlocking = !1, isProceeding = !1, pendingNavigation = null;
|
|
4
|
+
const blockerCallbacks = /* @__PURE__ */ new Map();
|
|
5
|
+
let listenersSetup = !1;
|
|
6
|
+
function setupListeners() {
|
|
7
|
+
if (listenersSetup || typeof window > "u") return;
|
|
8
|
+
listenersSetup = !0, currentLocation = window.location.pathname + window.location.search, window.addEventListener("popstate", () => {
|
|
9
|
+
if (isProceeding) return;
|
|
10
|
+
const nextLocation = window.location.pathname + window.location.search;
|
|
11
|
+
for (const [, callbacks] of blockerCallbacks)
|
|
12
|
+
if (callbacks.shouldBlock()) {
|
|
13
|
+
isBlocking = !0, pendingNavigation = {
|
|
14
|
+
previousLocation: currentLocation,
|
|
15
|
+
nextLocation,
|
|
16
|
+
historyAction: "pop"
|
|
17
|
+
}, window.history.go(1), callbacks.onBlock(pendingNavigation);
|
|
18
|
+
return;
|
|
19
|
+
}
|
|
20
|
+
currentLocation = nextLocation;
|
|
21
|
+
});
|
|
22
|
+
const originalPushState = window.history.pushState.bind(window.history), originalReplaceState = window.history.replaceState.bind(window.history);
|
|
23
|
+
window.history.pushState = function(state, title, url) {
|
|
24
|
+
if (isProceeding || !url)
|
|
25
|
+
return originalPushState(state, title, url);
|
|
26
|
+
const nextLocation = typeof url == "string" ? url : url.toString();
|
|
27
|
+
for (const [, callbacks] of blockerCallbacks)
|
|
28
|
+
if (callbacks.shouldBlock()) {
|
|
29
|
+
isBlocking = !0, pendingNavigation = {
|
|
30
|
+
previousLocation: currentLocation,
|
|
31
|
+
nextLocation,
|
|
32
|
+
historyAction: "push"
|
|
33
|
+
}, callbacks.onBlock(pendingNavigation);
|
|
34
|
+
return;
|
|
35
|
+
}
|
|
36
|
+
return currentLocation = nextLocation, originalPushState(state, title, url);
|
|
37
|
+
}, window.history.replaceState = function(state, title, url) {
|
|
38
|
+
if (isProceeding || !url)
|
|
39
|
+
return originalReplaceState(state, title, url);
|
|
40
|
+
const nextLocation = typeof url == "string" ? url : url.toString();
|
|
41
|
+
for (const [, callbacks] of blockerCallbacks)
|
|
42
|
+
if (callbacks.shouldBlock()) {
|
|
43
|
+
isBlocking = !0, pendingNavigation = {
|
|
44
|
+
previousLocation: currentLocation,
|
|
45
|
+
nextLocation,
|
|
46
|
+
historyAction: "replace"
|
|
47
|
+
}, callbacks.onBlock(pendingNavigation);
|
|
48
|
+
return;
|
|
49
|
+
}
|
|
50
|
+
return currentLocation = nextLocation, originalReplaceState(state, title, url);
|
|
51
|
+
}, window.addEventListener("beforeunload", (event) => {
|
|
52
|
+
for (const [, callbacks] of blockerCallbacks)
|
|
53
|
+
if (callbacks.shouldBlock()) {
|
|
54
|
+
event.preventDefault(), event.returnValue = "";
|
|
55
|
+
return;
|
|
56
|
+
}
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
function useBlocker(shouldBlock) {
|
|
60
|
+
const [state, setState] = React.useState("unblocked"), [blockedLocation, setBlockedLocation] = React.useState(null), idRef = React.useRef(null), shouldBlockRef = React.useRef(shouldBlock);
|
|
61
|
+
shouldBlockRef.current = shouldBlock, React.useEffect(() => {
|
|
62
|
+
if (Platform.OS !== "web" || typeof window > "u") return;
|
|
63
|
+
setupListeners();
|
|
64
|
+
const id = Symbol("blocker");
|
|
65
|
+
return idRef.current = id, blockerCallbacks.set(id, {
|
|
66
|
+
shouldBlock: () => {
|
|
67
|
+
const block = shouldBlockRef.current;
|
|
68
|
+
return typeof block == "function" ? block({
|
|
69
|
+
currentLocation,
|
|
70
|
+
nextLocation: pendingNavigation?.nextLocation || "",
|
|
71
|
+
historyAction: pendingNavigation?.historyAction || "push"
|
|
72
|
+
}) : block;
|
|
73
|
+
},
|
|
74
|
+
onBlock: (pending) => {
|
|
75
|
+
setBlockedLocation(pending.nextLocation), setState("blocked");
|
|
76
|
+
},
|
|
77
|
+
onProceed: () => {
|
|
78
|
+
setState("proceeding");
|
|
79
|
+
},
|
|
80
|
+
onReset: () => {
|
|
81
|
+
setState("unblocked"), setBlockedLocation(null);
|
|
82
|
+
}
|
|
83
|
+
}), () => {
|
|
84
|
+
blockerCallbacks.delete(id);
|
|
85
|
+
};
|
|
86
|
+
}, []);
|
|
87
|
+
const reset = React.useCallback(() => {
|
|
88
|
+
isBlocking = !1, pendingNavigation = null, setBlockedLocation(null), setState("unblocked");
|
|
89
|
+
}, []), proceed = React.useCallback(() => {
|
|
90
|
+
if (!pendingNavigation) return;
|
|
91
|
+
setState("proceeding"), isProceeding = !0;
|
|
92
|
+
const pending = pendingNavigation;
|
|
93
|
+
pendingNavigation = null, isBlocking = !1, requestAnimationFrame(() => {
|
|
94
|
+
pending.historyAction === "pop" ? window.history.back() : pending.historyAction === "push" ? window.history.pushState(null, "", pending.nextLocation) : window.history.replaceState(null, "", pending.nextLocation), currentLocation = pending.nextLocation, requestAnimationFrame(() => {
|
|
95
|
+
isProceeding = !1, setBlockedLocation(null), setState("unblocked");
|
|
96
|
+
});
|
|
97
|
+
});
|
|
98
|
+
}, []);
|
|
99
|
+
return state === "unblocked" ? { state: "unblocked" } : state === "proceeding" ? { state: "proceeding", location: blockedLocation } : {
|
|
100
|
+
state: "blocked",
|
|
101
|
+
reset,
|
|
102
|
+
proceed,
|
|
103
|
+
location: blockedLocation
|
|
104
|
+
};
|
|
105
|
+
}
|
|
106
|
+
function checkBlocker(nextLocation, historyAction = "push") {
|
|
107
|
+
if (Platform.OS !== "web" || typeof window > "u" || isProceeding)
|
|
108
|
+
return !1;
|
|
109
|
+
for (const [, callbacks] of blockerCallbacks)
|
|
110
|
+
if (callbacks.shouldBlock())
|
|
111
|
+
return isBlocking = !0, pendingNavigation = {
|
|
112
|
+
previousLocation: currentLocation,
|
|
113
|
+
nextLocation,
|
|
114
|
+
historyAction
|
|
115
|
+
}, callbacks.onBlock(pendingNavigation), !0;
|
|
116
|
+
return !1;
|
|
117
|
+
}
|
|
118
|
+
export {
|
|
119
|
+
checkBlocker,
|
|
120
|
+
useBlocker
|
|
121
|
+
};
|
|
122
|
+
//# sourceMappingURL=useBlocker.js.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/useBlocker.ts"],
|
|
4
|
+
"mappings": "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",
|
|
5
|
+
"names": []
|
|
6
|
+
}
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import { Platform } from "react-native-web";
|
|
3
|
+
let currentLocation = typeof window < "u" ? window.location.pathname + window.location.search : "",
|
|
4
|
+
isBlocking = !1,
|
|
5
|
+
isProceeding = !1,
|
|
6
|
+
pendingNavigation = null;
|
|
7
|
+
const blockerCallbacks = /* @__PURE__ */new Map();
|
|
8
|
+
let listenersSetup = !1;
|
|
9
|
+
function setupListeners() {
|
|
10
|
+
if (listenersSetup || typeof window > "u") return;
|
|
11
|
+
listenersSetup = !0, currentLocation = window.location.pathname + window.location.search, window.addEventListener("popstate", () => {
|
|
12
|
+
if (isProceeding) return;
|
|
13
|
+
const nextLocation = window.location.pathname + window.location.search;
|
|
14
|
+
for (const [, callbacks] of blockerCallbacks) if (callbacks.shouldBlock()) {
|
|
15
|
+
isBlocking = !0, pendingNavigation = {
|
|
16
|
+
previousLocation: currentLocation,
|
|
17
|
+
nextLocation,
|
|
18
|
+
historyAction: "pop"
|
|
19
|
+
}, window.history.go(1), callbacks.onBlock(pendingNavigation);
|
|
20
|
+
return;
|
|
21
|
+
}
|
|
22
|
+
currentLocation = nextLocation;
|
|
23
|
+
});
|
|
24
|
+
const originalPushState = window.history.pushState.bind(window.history),
|
|
25
|
+
originalReplaceState = window.history.replaceState.bind(window.history);
|
|
26
|
+
window.history.pushState = function (state, title, url) {
|
|
27
|
+
if (isProceeding || !url) return originalPushState(state, title, url);
|
|
28
|
+
const nextLocation = typeof url == "string" ? url : url.toString();
|
|
29
|
+
for (const [, callbacks] of blockerCallbacks) if (callbacks.shouldBlock()) {
|
|
30
|
+
isBlocking = !0, pendingNavigation = {
|
|
31
|
+
previousLocation: currentLocation,
|
|
32
|
+
nextLocation,
|
|
33
|
+
historyAction: "push"
|
|
34
|
+
}, callbacks.onBlock(pendingNavigation);
|
|
35
|
+
return;
|
|
36
|
+
}
|
|
37
|
+
return currentLocation = nextLocation, originalPushState(state, title, url);
|
|
38
|
+
}, window.history.replaceState = function (state, title, url) {
|
|
39
|
+
if (isProceeding || !url) return originalReplaceState(state, title, url);
|
|
40
|
+
const nextLocation = typeof url == "string" ? url : url.toString();
|
|
41
|
+
for (const [, callbacks] of blockerCallbacks) if (callbacks.shouldBlock()) {
|
|
42
|
+
isBlocking = !0, pendingNavigation = {
|
|
43
|
+
previousLocation: currentLocation,
|
|
44
|
+
nextLocation,
|
|
45
|
+
historyAction: "replace"
|
|
46
|
+
}, callbacks.onBlock(pendingNavigation);
|
|
47
|
+
return;
|
|
48
|
+
}
|
|
49
|
+
return currentLocation = nextLocation, originalReplaceState(state, title, url);
|
|
50
|
+
}, window.addEventListener("beforeunload", event => {
|
|
51
|
+
for (const [, callbacks] of blockerCallbacks) if (callbacks.shouldBlock()) {
|
|
52
|
+
event.preventDefault(), event.returnValue = "";
|
|
53
|
+
return;
|
|
54
|
+
}
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
function useBlocker(shouldBlock) {
|
|
58
|
+
const [state, setState] = React.useState("unblocked"),
|
|
59
|
+
[blockedLocation, setBlockedLocation] = React.useState(null),
|
|
60
|
+
idRef = React.useRef(null),
|
|
61
|
+
shouldBlockRef = React.useRef(shouldBlock);
|
|
62
|
+
shouldBlockRef.current = shouldBlock, React.useEffect(() => {
|
|
63
|
+
if (Platform.OS !== "web" || typeof window > "u") return;
|
|
64
|
+
setupListeners();
|
|
65
|
+
const id = Symbol("blocker");
|
|
66
|
+
return idRef.current = id, blockerCallbacks.set(id, {
|
|
67
|
+
shouldBlock: () => {
|
|
68
|
+
const block = shouldBlockRef.current;
|
|
69
|
+
return typeof block == "function" ? block({
|
|
70
|
+
currentLocation,
|
|
71
|
+
nextLocation: pendingNavigation?.nextLocation || "",
|
|
72
|
+
historyAction: pendingNavigation?.historyAction || "push"
|
|
73
|
+
}) : block;
|
|
74
|
+
},
|
|
75
|
+
onBlock: pending => {
|
|
76
|
+
setBlockedLocation(pending.nextLocation), setState("blocked");
|
|
77
|
+
},
|
|
78
|
+
onProceed: () => {
|
|
79
|
+
setState("proceeding");
|
|
80
|
+
},
|
|
81
|
+
onReset: () => {
|
|
82
|
+
setState("unblocked"), setBlockedLocation(null);
|
|
83
|
+
}
|
|
84
|
+
}), () => {
|
|
85
|
+
blockerCallbacks.delete(id);
|
|
86
|
+
};
|
|
87
|
+
}, []);
|
|
88
|
+
const reset = React.useCallback(() => {
|
|
89
|
+
isBlocking = !1, pendingNavigation = null, setBlockedLocation(null), setState("unblocked");
|
|
90
|
+
}, []),
|
|
91
|
+
proceed = React.useCallback(() => {
|
|
92
|
+
if (!pendingNavigation) return;
|
|
93
|
+
setState("proceeding"), isProceeding = !0;
|
|
94
|
+
const pending = pendingNavigation;
|
|
95
|
+
pendingNavigation = null, isBlocking = !1, requestAnimationFrame(() => {
|
|
96
|
+
pending.historyAction === "pop" ? window.history.back() : pending.historyAction === "push" ? window.history.pushState(null, "", pending.nextLocation) : window.history.replaceState(null, "", pending.nextLocation), currentLocation = pending.nextLocation, requestAnimationFrame(() => {
|
|
97
|
+
isProceeding = !1, setBlockedLocation(null), setState("unblocked");
|
|
98
|
+
});
|
|
99
|
+
});
|
|
100
|
+
}, []);
|
|
101
|
+
return state === "unblocked" ? {
|
|
102
|
+
state: "unblocked"
|
|
103
|
+
} : state === "proceeding" ? {
|
|
104
|
+
state: "proceeding",
|
|
105
|
+
location: blockedLocation
|
|
106
|
+
} : {
|
|
107
|
+
state: "blocked",
|
|
108
|
+
reset,
|
|
109
|
+
proceed,
|
|
110
|
+
location: blockedLocation
|
|
111
|
+
};
|
|
112
|
+
}
|
|
113
|
+
function checkBlocker(nextLocation, historyAction = "push") {
|
|
114
|
+
if (Platform.OS !== "web" || typeof window > "u" || isProceeding) return !1;
|
|
115
|
+
for (const [, callbacks] of blockerCallbacks) if (callbacks.shouldBlock()) return isBlocking = !0, pendingNavigation = {
|
|
116
|
+
previousLocation: currentLocation,
|
|
117
|
+
nextLocation,
|
|
118
|
+
historyAction
|
|
119
|
+
}, callbacks.onBlock(pendingNavigation), !0;
|
|
120
|
+
return !1;
|
|
121
|
+
}
|
|
122
|
+
export { checkBlocker, useBlocker };
|
|
123
|
+
//# sourceMappingURL=useBlocker.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","Platform","currentLocation","window","location","pathname","search","isBlocking","isProceeding","pendingNavigation","blockerCallbacks","Map","listenersSetup","setupListeners","addEventListener","nextLocation","callbacks","shouldBlock","previousLocation","historyAction","history","go","onBlock","originalPushState","pushState","bind","originalReplaceState","replaceState","state","title","url","toString","event","preventDefault","returnValue","useBlocker","setState","useState","blockedLocation","setBlockedLocation","idRef","useRef","shouldBlockRef","current","useEffect","OS","id","Symbol","set","block","pending","onProceed","onReset","delete","reset","useCallback","proceed","requestAnimationFrame","back","checkBlocker"],"sources":["../../src/useBlocker.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { useNavigation } from "@react-navigation/native";
|
|
2
|
+
import * as React from "react";
|
|
3
|
+
function useBlocker(shouldBlock) {
|
|
4
|
+
var navigation = useNavigation(),
|
|
5
|
+
[state, setState] = React.useState("unblocked"),
|
|
6
|
+
[pendingEvent, setPendingEvent] = React.useState(null),
|
|
7
|
+
[blockedLocation, setBlockedLocation] = React.useState(null),
|
|
8
|
+
shouldBlockRef = React.useRef(shouldBlock);
|
|
9
|
+
shouldBlockRef.current = shouldBlock, React.useEffect(function () {
|
|
10
|
+
var unsubscribe = navigation.addListener("beforeRemove", function (e) {
|
|
11
|
+
var _e_data_action,
|
|
12
|
+
_e_data,
|
|
13
|
+
currentShouldBlock = shouldBlockRef.current,
|
|
14
|
+
payload = (_e_data = e.data) === null || _e_data === void 0 || (_e_data_action = _e_data.action) === null || _e_data_action === void 0 ? void 0 : _e_data_action.payload,
|
|
15
|
+
nextLocation = payload?.name || "previous screen",
|
|
16
|
+
block = typeof currentShouldBlock == "function" ? currentShouldBlock({
|
|
17
|
+
currentLocation: "",
|
|
18
|
+
// Not easily available on native
|
|
19
|
+
nextLocation,
|
|
20
|
+
historyAction: "pop"
|
|
21
|
+
}) : currentShouldBlock;
|
|
22
|
+
block && (e.preventDefault(), setPendingEvent(e), setBlockedLocation(nextLocation), setState("blocked"));
|
|
23
|
+
});
|
|
24
|
+
return unsubscribe;
|
|
25
|
+
}, [navigation]);
|
|
26
|
+
var reset = React.useCallback(function () {
|
|
27
|
+
setPendingEvent(null), setBlockedLocation(null), setState("unblocked");
|
|
28
|
+
}, []),
|
|
29
|
+
proceed = React.useCallback(function () {
|
|
30
|
+
pendingEvent && (setState("proceeding"), navigation.dispatch(pendingEvent.data.action), setTimeout(function () {
|
|
31
|
+
setPendingEvent(null), setBlockedLocation(null), setState("unblocked");
|
|
32
|
+
}, 100));
|
|
33
|
+
}, [navigation, pendingEvent]);
|
|
34
|
+
return state === "unblocked" ? {
|
|
35
|
+
state: "unblocked"
|
|
36
|
+
} : state === "proceeding" ? {
|
|
37
|
+
state: "proceeding",
|
|
38
|
+
location: blockedLocation
|
|
39
|
+
} : {
|
|
40
|
+
state: "blocked",
|
|
41
|
+
reset,
|
|
42
|
+
proceed,
|
|
43
|
+
location: blockedLocation
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
function checkBlocker(_nextLocation) {
|
|
47
|
+
var _historyAction = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : "push";
|
|
48
|
+
return !1;
|
|
49
|
+
}
|
|
50
|
+
export { checkBlocker, useBlocker };
|
|
51
|
+
//# sourceMappingURL=useBlocker.native.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["useNavigation","React","useBlocker","shouldBlock","navigation","state","setState","useState","pendingEvent","setPendingEvent","blockedLocation","setBlockedLocation","shouldBlockRef","useRef","current","useEffect","unsubscribe","addListener","e","_e_data_action","_e_data","currentShouldBlock","payload","data","action","nextLocation","name","block","currentLocation","historyAction","preventDefault","reset","useCallback","proceed","dispatch","setTimeout","location","checkBlocker","_nextLocation","_historyAction","arguments","length"],"sources":["../../src/useBlocker.native.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,aAAA,QAAqB;AAC9B,YAAYC,KAAA,MAAW;AA+BZ,SAASC,WAAWC,WAAA,EAAa;EACxC,IAAIC,UAAA,GAAaJ,aAAA,CAAc;IAC3B,CAACK,KAAA,EAAOC,QAAQ,IAAIL,KAAA,CAAMM,QAAA,CAAS,WAAW;IAC9C,CAACC,YAAA,EAAcC,eAAe,IAAIR,KAAA,CAAMM,QAAA,CAAS,IAAI;IACrD,CAACG,eAAA,EAAiBC,kBAAkB,IAAIV,KAAA,CAAMM,QAAA,CAAS,IAAI;IAC3DK,cAAA,GAAiBX,KAAA,CAAMY,MAAA,CAAOV,WAAW;EAC7CS,cAAA,CAAeE,OAAA,GAAUX,WAAA,EACzBF,KAAA,CAAMc,SAAA,CAAU,YAAW;IACvB,IAAIC,WAAA,GAAcZ,UAAA,CAAWa,WAAA,CAAY,gBAAgB,UAASC,CAAA,EAAG;MACjE,IAAIC,cAAA;QAAgBC,OAAA;QAChBC,kBAAA,GAAqBT,cAAA,CAAeE,OAAA;QAEpCQ,OAAA,IAAWF,OAAA,GAAUF,CAAA,CAAEK,IAAA,MAAU,QAAQH,OAAA,KAAY,WAAmBD,cAAA,GAAiBC,OAAA,CAAQI,MAAA,MAAY,QAAQL,cAAA,KAAmB,SAA1E,SAA4FA,cAAA,CAAeG,OAAA;QACzKG,YAAA,GAAkEH,OAAA,EAAQI,IAAA,IAAS;QAEnFC,KAAA,GAAQ,OAAON,kBAAA,IAAuB,aAAaA,kBAAA,CAAmB;UACtEO,eAAA,EAAiB;UAAA;UAEjBH,YAAA;UACAI,aAAA,EAAe;QACnB,CAAC,IAAIR,kBAAA;MACAM,KAAA,KAILT,CAAA,CAAEY,cAAA,CAAe,GAEjBrB,eAAA,CAAgBS,CAAC,GACjBP,kBAAA,CAAmBc,YAAY,GAC/BnB,QAAA,CAAS,SAAS;IACtB,CAAC;IACD,OAAOU,WAAA;EACX,GAAG,CACCZ,UAAA,CACH;EACD,IAAI2B,KAAA,GAAQ9B,KAAA,CAAM+B,WAAA,CAAY,YAAW;MACrCvB,eAAA,CAAgB,IAAI,GACpBE,kBAAA,CAAmB,IAAI,GACvBL,QAAA,CAAS,WAAW;IACxB,GAAG,EAAE;IACD2B,OAAA,GAAUhC,KAAA,CAAM+B,WAAA,CAAY,YAAW;MAClCxB,YAAA,KACLF,QAAA,CAAS,YAAY,GAErBF,UAAA,CAAW8B,QAAA,CAAS1B,YAAA,CAAae,IAAA,CAAKC,MAAM,GAE5CW,UAAA,CAAW,YAAW;QAClB1B,eAAA,CAAgB,IAAI,GACpBE,kBAAA,CAAmB,IAAI,GACvBL,QAAA,CAAS,WAAW;MACxB,GAAG,GAAG;IACV,GAAG,CACCF,UAAA,EACAI,YAAA,CACH;EACD,OAAIH,KAAA,KAAU,cACH;IACHA,KAAA,EAAO;EACX,IAEAA,KAAA,KAAU,eACH;IACHA,KAAA,EAAO;IACP+B,QAAA,EAAU1B;EACd,IAEG;IACHL,KAAA,EAAO;IACP0B,KAAA;IACAE,OAAA;IACAG,QAAA,EAAU1B;EACd;AACJ;AAIW,SAAS2B,aAAaC,aAAA,EAAe;EAC5C,IAAIC,cAAA,GAAiBC,SAAA,CAAUC,MAAA,GAAS,KAAKD,SAAA,CAAU,CAAC,MAAM,SAASA,SAAA,CAAU,CAAC,IAAI;EACtF,OAAO;AACX","ignoreList":[]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { useEffect } from "react";
|
|
2
2
|
import { useOptionalNavigation } from "./link/useLoadedNavigation";
|
|
3
|
-
function useFocusEffect(effect,
|
|
3
|
+
function useFocusEffect(effect, deps) {
|
|
4
4
|
const navigation = useOptionalNavigation();
|
|
5
5
|
useEffect(() => {
|
|
6
6
|
if (!navigation)
|
|
@@ -40,7 +40,7 @@ See usage guide: https://reactnavigation.org/docs/use-focus-effect` : message +=
|
|
|
40
40
|
return () => {
|
|
41
41
|
cleanup?.(), unsubscribeFocus(), unsubscribeBlur();
|
|
42
42
|
};
|
|
43
|
-
}, [navigation, ...
|
|
43
|
+
}, [navigation, ...deps]);
|
|
44
44
|
}
|
|
45
45
|
export {
|
|
46
46
|
useFocusEffect
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/useFocusEffect.ts"],
|
|
4
|
-
"mappings": "AAGA,SAAS,iBAAiB;AAC1B,SAAS,6BAA6B;
|
|
4
|
+
"mappings": "AAGA,SAAS,iBAAiB;AAC1B,SAAS,6BAA6B;AAuB/B,SAAS,eAAe,QAAwB,MAAa;AAClE,QAAM,aAAa,sBAAsB;AAEzC,YAAU,MAAM;AACd,QAAI,CAAC;AACH;AAGF,QAAI,YAAY,IACZ;AAEJ,UAAM,WAAW,MAAM;AACrB,YAAM,UAAU,OAAO;AAEvB,UAAI,YAAY,UAAa,OAAO,WAAY;AAC9C,eAAO;AAGT,UAAI,QAAQ,IAAI,aAAa,cAAc;AACzC,YAAI,UACF;AAEF,QAAI,YAAY,OACd,WACE,qGACO,OAAQ,QAAgB,QAAS,aAC1C,WACE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,sEAeF,WAAW,kBAAkB,KAAK,UAAU,OAAO,CAAC,MAGtD,QAAQ,MAAM,OAAO;AAAA,MACvB;AAAA,IACF;AAGA,IAAI,WAAW,UAAU,MACvB,UAAU,SAAS,GACnB,YAAY;AAGd,UAAM,mBAAmB,WAAW,YAAY,SAAS,MAAM;AAG7D,MAAI,cACJ,UAAU,GACV,UAAU,SAAS,GACnB,YAAY;AAAA,IACd,CAAC,GAEK,kBAAkB,WAAW,YAAY,QAAQ,MAAM;AAC3D,gBAAU,GACV,UAAU,QACV,YAAY;AAAA,IACd,CAAC;AAED,WAAO,MAAM;AACX,gBAAU,GACV,iBAAiB,GACjB,gBAAgB;AAAA,IAClB;AAAA,EACF,GAAG,CAAC,YAAY,GAAG,IAAI,CAAC;AAC1B;",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { useEffect } from "react";
|
|
2
2
|
import { useOptionalNavigation } from "./link/useLoadedNavigation.mjs";
|
|
3
|
-
function useFocusEffect(effect,
|
|
3
|
+
function useFocusEffect(effect, deps) {
|
|
4
4
|
const navigation = useOptionalNavigation();
|
|
5
5
|
useEffect(() => {
|
|
6
6
|
if (!navigation) return;
|
|
@@ -40,7 +40,7 @@ See usage guide: https://reactnavigation.org/docs/use-focus-effect` : message +=
|
|
|
40
40
|
return () => {
|
|
41
41
|
cleanup?.(), unsubscribeFocus(), unsubscribeBlur();
|
|
42
42
|
};
|
|
43
|
-
}, [navigation, ...
|
|
43
|
+
}, [navigation, ...deps]);
|
|
44
44
|
}
|
|
45
45
|
export { useFocusEffect };
|
|
46
46
|
//# sourceMappingURL=useFocusEffect.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useEffect","useOptionalNavigation","useFocusEffect","effect","
|
|
1
|
+
{"version":3,"names":["useEffect","useOptionalNavigation","useFocusEffect","effect","deps","navigation","isFocused","cleanup","callback","destroy","process","env","NODE_ENV","message","then","JSON","stringify","console","error","unsubscribeFocus","addListener","unsubscribeBlur"],"sources":["../../src/useFocusEffect.ts"],"sourcesContent":[null],"mappings":"AAGA,SAASA,SAAA,QAAiB;AAC1B,SAASC,qBAAA,QAA6B;AAuB/B,SAASC,eAAeC,MAAA,EAAwBC,IAAA,EAAa;EAClE,MAAMC,UAAA,GAAaJ,qBAAA,CAAsB;EAEzCD,SAAA,CAAU,MAAM;IACd,IAAI,CAACK,UAAA,EACH;IAGF,IAAIC,SAAA,GAAY;MACZC,OAAA;IAEJ,MAAMC,QAAA,GAAWA,CAAA,KAAM;MACrB,MAAMC,OAAA,GAAUN,MAAA,CAAO;MAEvB,IAAIM,OAAA,KAAY,UAAa,OAAOA,OAAA,IAAY,YAC9C,OAAOA,OAAA;MAGT,IAAIC,OAAA,CAAQC,GAAA,CAAIC,QAAA,KAAa,cAAc;QACzC,IAAIC,OAAA,GACF;QAEEJ,OAAA,KAAY,OACdI,OAAA,IACE,qGACO,OAAQJ,OAAA,CAAgBK,IAAA,IAAS,aAC1CD,OAAA,IACE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,sEAeFA,OAAA,IAAW,kBAAkBE,IAAA,CAAKC,SAAA,CAAUP,OAAO,CAAC,MAGtDQ,OAAA,CAAQC,KAAA,CAAML,OAAO;MACvB;IACF;IAGIR,UAAA,CAAWC,SAAA,CAAU,MACvBC,OAAA,GAAUC,QAAA,CAAS,GACnBF,SAAA,GAAY;IAGd,MAAMa,gBAAA,GAAmBd,UAAA,CAAWe,WAAA,CAAY,SAAS,MAAM;QAGzDd,SAAA,KACJC,OAAA,GAAU,GACVA,OAAA,GAAUC,QAAA,CAAS,GACnBF,SAAA,GAAY;MACd,CAAC;MAEKe,eAAA,GAAkBhB,UAAA,CAAWe,WAAA,CAAY,QAAQ,MAAM;QAC3Db,OAAA,GAAU,GACVA,OAAA,GAAU,QACVD,SAAA,GAAY;MACd,CAAC;IAED,OAAO,MAAM;MACXC,OAAA,GAAU,GACVY,gBAAA,CAAiB,GACjBE,eAAA,CAAgB;IAClB;EACF,GAAG,CAAChB,UAAA,EAAY,GAAGD,IAAI,CAAC;AAC1B","ignoreList":[]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { useEffect } from "react";
|
|
2
2
|
import { useOptionalNavigation } from "./link/useLoadedNavigation.native.js";
|
|
3
|
-
function useFocusEffect(effect,
|
|
3
|
+
function useFocusEffect(effect, deps) {
|
|
4
4
|
var navigation = useOptionalNavigation();
|
|
5
5
|
useEffect(function () {
|
|
6
6
|
if (navigation) {
|
|
@@ -41,7 +41,7 @@ See usage guide: https://reactnavigation.org/docs/use-focus-effect` : message +=
|
|
|
41
41
|
cleanup?.(), unsubscribeFocus(), unsubscribeBlur();
|
|
42
42
|
};
|
|
43
43
|
}
|
|
44
|
-
}, [navigation, ...
|
|
44
|
+
}, [navigation, ...deps]);
|
|
45
45
|
}
|
|
46
46
|
export { useFocusEffect };
|
|
47
47
|
//# sourceMappingURL=useFocusEffect.native.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useEffect","useOptionalNavigation","useFocusEffect","effect","
|
|
1
|
+
{"version":3,"names":["useEffect","useOptionalNavigation","useFocusEffect","effect","deps","navigation","isFocused","cleanup","callback","destroy","process","env","NODE_ENV","message","then","JSON","stringify","console","error","unsubscribeFocus","addListener","unsubscribeBlur"],"sources":["../../src/useFocusEffect.ts"],"sourcesContent":[null],"mappings":"AAGA,SAASA,SAAA,QAAiB;AAC1B,SAASC,qBAAA,QAA6B;AAuB/B,SAASC,eAAeC,MAAA,EAAwBC,IAAA,EAAa;EAClE,IAAAC,UAAM,GAAAJ,qBAAa;EAEnBD,SAAA,CAAU,YAAM;IACd,IAAIK,UAAC;MACH,IAAAC,SAAA;QAAAC,OAAA;QAAAC,QAAA,YAAAA,CAAA;UAGE,IAAAC,OAAA,GAAYN,MACZ;UAEJ,IAAMM,OAAA,KAAW,KAAM,YAAAA,OAAA,gBACrB,OAAMA,OAAU;UAEhB,IAAIC,OAAA,CAAAC,GAAY,CAAAC,QAAa,iBAAO,EAAY;YAC9C,IAAAC,OAAO;YAGLJ,OAAA,KAAY,OAAAI,OAAa,sGAAc,UAAAJ,OAAA,CAAAK,IAAA,iBAAAD,OAAA;AACzC;AAGA;AAKI;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,sEAAAA,OAAA,sBAAAE,IAAA,CAAAC,SAAA,CAAAP,OAAA,OAAAQ,OAAA,CAAAC,KAAA,CAAAL,OAAA;UAAA;QAAA;MAmBNR,UAAA,CAAAC,SAAA,OAAAC,OAAA,GAAAC,QAAA,IAAAF,SAAA;MACF,IAAAa,gBAAA,GAAAd,UAAA,CAAAe,WAAA;UAGId,SAAW,KAAAC,OAAU,GACvB,GAAAA,OAAU,GAAAC,QACV,IAAAF,SAAY;QAGd;QAAMe,eAAA,GAAAhB,UAAmB,CAAAe,WAAW,OAAY,cAAe;UAGzDb,OAAA,MACJA,OAAA,GAAU,KACV,GAAAD,SAAU,IAAS;QAEpB,EAEK;MACJ,mBACA;QAEDC,OAAA,MAAAY,gBAAA,IAAAE,eAAA;MAED;IACE;EAEgB,GAClB,CACFhB,UAAI,EACN,GAAAD,IAAA,C","ignoreList":[]}
|
package/dist/esm/useLoader.js
CHANGED
|
@@ -1,10 +1,33 @@
|
|
|
1
1
|
import { useCallback, useSyncExternalStore } from "react";
|
|
2
|
+
import { registerDevtoolsFunction } from "./devtools/registry";
|
|
2
3
|
import { useParams, usePathname } from "./hooks";
|
|
3
4
|
import { preloadedLoaderData, preloadingLoader } from "./router/router";
|
|
4
5
|
import { getLoaderPath } from "./utils/cleanUrl";
|
|
5
6
|
import { dynamicImport } from "./utils/dynamicImport";
|
|
6
7
|
import { weakKey } from "./utils/weakKey";
|
|
7
8
|
import { useServerContext } from "./vite/one-server-only";
|
|
9
|
+
const loaderTimingHistory = [], MAX_TIMING_HISTORY = 50;
|
|
10
|
+
function recordLoaderTiming(entry) {
|
|
11
|
+
process.env.NODE_ENV === "development" && (loaderTimingHistory.unshift(entry), loaderTimingHistory.length > MAX_TIMING_HISTORY && loaderTimingHistory.pop(), typeof window < "u" && (window.dispatchEvent(new CustomEvent("one-loader-timing", { detail: entry })), entry.error && window.dispatchEvent(
|
|
12
|
+
new CustomEvent("one-error", {
|
|
13
|
+
detail: {
|
|
14
|
+
error: {
|
|
15
|
+
message: entry.error,
|
|
16
|
+
name: "LoaderError"
|
|
17
|
+
},
|
|
18
|
+
route: {
|
|
19
|
+
pathname: entry.path
|
|
20
|
+
},
|
|
21
|
+
timestamp: Date.now(),
|
|
22
|
+
type: "loader"
|
|
23
|
+
}
|
|
24
|
+
})
|
|
25
|
+
)));
|
|
26
|
+
}
|
|
27
|
+
function getLoaderTimingHistory() {
|
|
28
|
+
return loaderTimingHistory;
|
|
29
|
+
}
|
|
30
|
+
registerDevtoolsFunction("getLoaderTimingHistory", getLoaderTimingHistory);
|
|
8
31
|
const loaderState = {}, subscribers = /* @__PURE__ */ new Set();
|
|
9
32
|
function updateState(path, updates) {
|
|
10
33
|
loaderState[path] = { ...loaderState[path], ...updates }, subscribers.forEach((callback) => {
|
|
@@ -24,26 +47,41 @@ function getLoaderState(path, preloadedData2) {
|
|
|
24
47
|
}), loaderState[path];
|
|
25
48
|
}
|
|
26
49
|
async function refetchLoader(pathname2) {
|
|
50
|
+
const startTime2 = performance.now();
|
|
27
51
|
updateState(pathname2, {
|
|
28
52
|
state: "loading",
|
|
29
53
|
error: null
|
|
30
54
|
});
|
|
31
55
|
try {
|
|
32
|
-
const cacheBust = `${Date.now()}`, loaderJSUrl2 = getLoaderPath(pathname2, !0, cacheBust),
|
|
56
|
+
const cacheBust = `${Date.now()}`, loaderJSUrl2 = getLoaderPath(pathname2, !0, cacheBust), moduleLoadStart2 = performance.now(), module2 = await dynamicImport(loaderJSUrl2), moduleLoadTime2 = performance.now() - moduleLoadStart2, executionStart2 = performance.now(), result2 = await module2.loader(), executionTime2 = performance.now() - executionStart2, totalTime2 = performance.now() - startTime2;
|
|
33
57
|
updateState(pathname2, {
|
|
34
58
|
data: result2,
|
|
35
59
|
state: "idle",
|
|
36
60
|
timestamp: Date.now(),
|
|
37
61
|
hasLoadedOnce: !0
|
|
62
|
+
}), recordLoaderTiming({
|
|
63
|
+
path: pathname2,
|
|
64
|
+
startTime: startTime2,
|
|
65
|
+
moduleLoadTime: moduleLoadTime2,
|
|
66
|
+
executionTime: executionTime2,
|
|
67
|
+
totalTime: totalTime2,
|
|
68
|
+
source: "refetch"
|
|
38
69
|
});
|
|
39
70
|
} catch (err) {
|
|
71
|
+
const totalTime2 = performance.now() - startTime2;
|
|
40
72
|
throw updateState(pathname2, {
|
|
41
73
|
error: err,
|
|
42
74
|
state: "idle"
|
|
75
|
+
}), recordLoaderTiming({
|
|
76
|
+
path: pathname2,
|
|
77
|
+
startTime: startTime2,
|
|
78
|
+
totalTime: totalTime2,
|
|
79
|
+
error: err instanceof Error ? err.message : String(err),
|
|
80
|
+
source: "refetch"
|
|
43
81
|
}), err;
|
|
44
82
|
}
|
|
45
83
|
}
|
|
46
|
-
typeof window < "u" && (window.__oneRefetchLoader = refetchLoader);
|
|
84
|
+
process.env.NODE_ENV === "development" && typeof window < "u" && (window.__oneRefetchLoader = refetchLoader);
|
|
47
85
|
function useLoaderState(loader) {
|
|
48
86
|
const {
|
|
49
87
|
loaderProps: loaderPropsFromServerContext,
|
|
@@ -88,17 +126,32 @@ function useLoaderState(loader) {
|
|
|
88
126
|
loaderStateEntry.promise = promise2;
|
|
89
127
|
} else {
|
|
90
128
|
const loadData = async () => {
|
|
129
|
+
const startTime = performance.now();
|
|
91
130
|
try {
|
|
92
|
-
const loaderJSUrl = getLoaderPath(currentPath, !0), module = await dynamicImport(loaderJSUrl), result = await module.loader();
|
|
131
|
+
const loaderJSUrl = getLoaderPath(currentPath, !0), moduleLoadStart = performance.now(), module = await dynamicImport(loaderJSUrl), moduleLoadTime = performance.now() - moduleLoadStart, executionStart = performance.now(), result = await module.loader(), executionTime = performance.now() - executionStart, totalTime = performance.now() - startTime;
|
|
93
132
|
updateState(currentPath, {
|
|
94
133
|
data: result,
|
|
95
134
|
hasLoadedOnce: !0,
|
|
96
135
|
promise: void 0
|
|
136
|
+
}), recordLoaderTiming({
|
|
137
|
+
path: currentPath,
|
|
138
|
+
startTime,
|
|
139
|
+
moduleLoadTime,
|
|
140
|
+
executionTime,
|
|
141
|
+
totalTime,
|
|
142
|
+
source: "initial"
|
|
97
143
|
});
|
|
98
144
|
} catch (err) {
|
|
145
|
+
const totalTime2 = performance.now() - startTime;
|
|
99
146
|
updateState(currentPath, {
|
|
100
147
|
error: err,
|
|
101
148
|
promise: void 0
|
|
149
|
+
}), recordLoaderTiming({
|
|
150
|
+
path: currentPath,
|
|
151
|
+
startTime,
|
|
152
|
+
totalTime: totalTime2,
|
|
153
|
+
error: err instanceof Error ? err.message : String(err),
|
|
154
|
+
source: "initial"
|
|
102
155
|
});
|
|
103
156
|
}
|
|
104
157
|
}, promise = loadData();
|
|
@@ -143,6 +196,7 @@ function useAsyncFn(val, props) {
|
|
|
143
196
|
return current;
|
|
144
197
|
}
|
|
145
198
|
export {
|
|
199
|
+
getLoaderTimingHistory,
|
|
146
200
|
refetchLoader,
|
|
147
201
|
useLoader,
|
|
148
202
|
useLoaderState
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/useLoader.ts"],
|
|
4
|
-
"mappings": "AAAA,SAAS,
|
|
5
|
-
"names": ["preloadedData", "pathname", "loaderJSUrl", "result", "promise", "loader", "data"]
|
|
4
|
+
"mappings": "AAAA,SAAS,aAAa,4BAA4B;AAClD,SAAS,gCAAgC;AACzC,SAAS,WAAW,mBAAmB;AACvC,SAAS,qBAAqB,wBAAwB;AACtD,SAAS,qBAAqB;AAC9B,SAAS,qBAAqB;AAC9B,SAAS,eAAe;AACxB,SAAS,wBAAwB;AAuBjC,MAAM,sBAA2C,CAAC,GAC5C,qBAAqB;AAE3B,SAAS,mBAAmB,OAA0B;AACpD,EAAI,QAAQ,IAAI,aAAa,kBAE7B,oBAAoB,QAAQ,KAAK,GAC7B,oBAAoB,SAAS,sBAC/B,oBAAoB,IAAI,GAGtB,OAAO,SAAW,QACpB,OAAO,cAAc,IAAI,YAAY,qBAAqB,EAAE,QAAQ,MAAM,CAAC,CAAC,GAGxE,MAAM,SACR,OAAO;AAAA,IACL,IAAI,YAAY,aAAa;AAAA,MAC3B,QAAQ;AAAA,QACN,OAAO;AAAA,UACL,SAAS,MAAM;AAAA,UACf,MAAM;AAAA,QACR;AAAA,QACA,OAAO;AAAA,UACL,UAAU,MAAM;AAAA,QAClB;AAAA,QACA,WAAW,KAAK,IAAI;AAAA,QACpB,MAAM;AAAA,MACR;AAAA,IACF,CAAC;AAAA,EACH;AAGN;AAEO,SAAS,yBAA8C;AAC5D,SAAO;AACT;AAGA,yBAAyB,0BAA0B,sBAAsB;AAEzE,MAAM,cAAgD,CAAC,GACjD,cAAc,oBAAI,IAAgB;AAExC,SAAS,YAAY,MAAc,SAAoC;AACrE,cAAY,IAAI,IAAI,EAAE,GAAG,YAAY,IAAI,GAAG,GAAG,QAAQ,GACvD,YAAY,QAAQ,CAAC,aAAa;AAChC,aAAS;AAAA,EACX,CAAC;AACH;AAEA,SAAS,UAAU,UAAsB;AACvC,qBAAY,IAAI,QAAQ,GACjB,MAAM,YAAY,OAAO,QAAQ;AAC1C;AAEA,SAAS,eAAe,MAAcA,gBAAuC;AAC3E,SAAK,YAAY,IAAI,MACnB,YAAY,IAAI,IAAI;AAAA,IAClB,MAAMA;AAAA,IACN,OAAO;AAAA,IACP,SAAS;AAAA,IACT,OAAO;AAAA,IACP,eAAe,CAAC,CAACA;AAAA,EACnB,IAEK,YAAY,IAAI;AACzB;AAcA,eAAsB,cAAcC,WAAiC;AACnE,QAAMC,aAAY,YAAY,IAAI;AAElC,cAAYD,WAAU;AAAA,IACpB,OAAO;AAAA,IACP,OAAO;AAAA,EACT,CAAC;AAED,MAAI;AACF,UAAM,YAAY,GAAG,KAAK,IAAI,CAAC,IACzBE,eAAc,cAAcF,WAAU,IAAM,SAAS,GAErDG,mBAAkB,YAAY,IAAI,GAClCC,UAAS,MAAM,cAAcF,YAAW,GACxCG,kBAAiB,YAAY,IAAI,IAAIF,kBAErCG,kBAAiB,YAAY,IAAI,GACjCC,UAAS,MAAMH,QAAO,OAAO,GAC7BI,iBAAgB,YAAY,IAAI,IAAIF,iBAEpCG,aAAY,YAAY,IAAI,IAAIR;AAEtC,gBAAYD,WAAU;AAAA,MACpB,MAAMO;AAAA,MACN,OAAO;AAAA,MACP,WAAW,KAAK,IAAI;AAAA,MACpB,eAAe;AAAA,IACjB,CAAC,GAED,mBAAmB;AAAA,MACjB,MAAMP;AAAA,MACN,WAAAC;AAAA,MACA,gBAAAI;AAAA,MACA,eAAAG;AAAA,MACA,WAAAC;AAAA,MACA,QAAQ;AAAA,IACV,CAAC;AAAA,EACH,SAAS,KAAK;AACZ,UAAMA,aAAY,YAAY,IAAI,IAAIR;AAEtC,sBAAYD,WAAU;AAAA,MACpB,OAAO;AAAA,MACP,OAAO;AAAA,IACT,CAAC,GAED,mBAAmB;AAAA,MACjB,MAAMA;AAAA,MACN,WAAAC;AAAA,MACA,WAAAQ;AAAA,MACA,OAAO,eAAe,QAAQ,IAAI,UAAU,OAAO,GAAG;AAAA,MACtD,QAAQ;AAAA,IACV,CAAC,GAEK;AAAA,EACR;AACF;AAGI,QAAQ,IAAI,aAAa,iBAAiB,OAAO,SAAW,QAC5D,OAAe,qBAAqB;AAwBjC,SAAS,eAId,QAOI;AACJ,QAAM;AAAA,IACJ,aAAa;AAAA,IACb,YAAY;AAAA,EACd,IAAI,iBAAiB,KAAK,CAAC,GAErB,SAAS,UAAU,GACnB,WAAW,YAAY,GAGvB,cAAc,SAAS,QAAQ,YAAY,EAAE,EAAE,QAAQ,OAAO,EAAE,KAAK;AAG3E,MAAI,OAAO,SAAW,OAAe;AAQnC,WAAO,EAAE,MAPU;AAAA,MACjB;AAAA,MACA,gCAAgC;AAAA,QAC9B,MAAM;AAAA,QACN;AAAA,MACF;AAAA,IACF,GAC2B,SAAS,YAAY;AAAA,IAAC,GAAG,OAAO,OAAO;AAIpE,QAAM,oBAAoB,8BAA8B,MAClD,gBACJ,sBAAsB,cAAc,8BAA8B,QAE9D,mBAAmB;AAAA,IACvB;AAAA,IACA,MAAM,eAAe,aAAa,aAAa;AAAA,IAC/C,MAAM,eAAe,aAAa,aAAa;AAAA,EACjD,GAEM,UAAU,YAAY,MAAM,cAAc,WAAW,GAAG,CAAC,WAAW,CAAC;AAG3E,MAAI,CAAC;AACH,WAAO;AAAA,MACL;AAAA,MACA,OAAO,iBAAiB;AAAA,IAC1B;AAIF,MACE,CAAC,iBAAiB,QAClB,CAAC,iBAAiB,WAClB,CAAC,iBAAiB,iBAClB,QACA;AAEA,UAAM,sBAAsB,oBAAoB,WAAW;AAC3D,QAAI,wBAAwB;AAE1B,aAAO,oBAAoB,WAAW,GACtC,OAAO,iBAAiB,WAAW,GACnC,iBAAiB,OAAO,qBACxB,iBAAiB,gBAAgB;AAAA,aACxB,iBAAiB,WAAW,GAAG;AAGxC,YAAMC,WADiB,iBAAiB,WAAW,EAEhD,KAAK,CAAC,QAAa;AAClB,eAAO,iBAAiB,WAAW,GACnC,OAAO,oBAAoB,WAAW,GACtC,YAAY,aAAa;AAAA,UACvB,MAAM;AAAA,UACN,eAAe;AAAA,UACf,SAAS;AAAA,QACX,CAAC;AAAA,MACH,CAAC,EACA,MAAM,CAAC,QAAa;AACnB,gBAAQ,MAAM,0BAA0B,GAAG,GAC3C,OAAO,iBAAiB,WAAW,GACnC,YAAY,aAAa;AAAA,UACvB,OAAO;AAAA,UACP,SAAS;AAAA,QACX,CAAC;AAAA,MACH,CAAC;AAEH,uBAAiB,UAAUA;AAAA,IAC7B,OAAO;AAEL,YAAM,WAAW,YAAY;AAC3B,cAAM,YAAY,YAAY,IAAI;AAElC,YAAI;AA4DF,gBAAM,cAAc,cAAc,aAAa,EAAI,GAE7C,kBAAkB,YAAY,IAAI,GAClC,SAAS,MAAM,cAAc,WAAW,GACxC,iBAAiB,YAAY,IAAI,IAAI,iBAErC,iBAAiB,YAAY,IAAI,GACjC,SAAS,MAAM,OAAO,OAAO,GAC7B,gBAAgB,YAAY,IAAI,IAAI,gBAEpC,YAAY,YAAY,IAAI,IAAI;AAEtC,sBAAY,aAAa;AAAA,YACvB,MAAM;AAAA,YACN,eAAe;AAAA,YACf,SAAS;AAAA,UACX,CAAC,GAED,mBAAmB;AAAA,YACjB,MAAM;AAAA,YACN;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA,QAAQ;AAAA,UACV,CAAC;AAAA,QACH,SAAS,KAAK;AACZ,gBAAMD,aAAY,YAAY,IAAI,IAAI;AAEtC,sBAAY,aAAa;AAAA,YACvB,OAAO;AAAA,YACP,SAAS;AAAA,UACX,CAAC,GAED,mBAAmB;AAAA,YACjB,MAAM;AAAA,YACN;AAAA,YACA,WAAAA;AAAA,YACA,OAAO,eAAe,QAAQ,IAAI,UAAU,OAAO,GAAG;AAAA,YACtD,QAAQ;AAAA,UACV,CAAC;AAAA,QACH;AAAA,MACF,GAEM,UAAU,SAAS;AACzB,uBAAiB,UAAU;AAAA,IAC7B;AAAA,EACF;AAGA,MAAI,QAAQ;AAEV,QAAI,iBAAiB,SAAS,CAAC,iBAAiB;AAC9C,YAAM,iBAAiB;AAIzB,QACE,iBAAiB,SAAS,UAC1B,iBAAiB,WACjB,CAAC,iBAAiB;AAElB,YAAM,iBAAiB;AAGzB,WAAO;AAAA,MACL,MAAM,iBAAiB;AAAA,MACvB;AAAA,MACA,OAAO,iBAAiB;AAAA,IAC1B;AAAA,EACF;AACE,WAAO;AAAA,MACL;AAAA,MACA,OAAO,iBAAiB;AAAA,IAC1B;AAEJ;AAsBO,SAAS,UAGdE,SAA8E;AAC9E,QAAM,EAAE,MAAAC,MAAK,IAAI,eAAeD,OAAM;AACtC,SAAOC;AACT;AAEA,MAAM,UAAU,oBAAI,IAAI,GAClB,UAAU,oBAAI,IAAI;AAExB,SAAS,WAAW,KAAU,OAAa;AACzC,QAAM,OAAO,MAAM,QAAQ,GAAG,IAAI,MAAM,KAAK,UAAU,KAAK;AAE5D,MAAI,OACE,CAAC,QAAQ,IAAI,GAAG,GAAG;AACrB,YAAQ,IAAI,KAAK,EAAI;AAErB,QAAI,OAAO,IAAI,KAAK;AACpB,IAAI,gBAAgB,YAClB,OAAO,KACJ,KAAK,CAAC,UAAU;AACf,cAAQ,IAAI,KAAK,KAAK;AAAA,IACxB,CAAC,EACA,MAAM,CAAC,QAAQ;AACd,cAAQ,MAAM,0BAA0B,GAAG,GAC3C,QAAQ,IAAI,KAAK,MAAS;AAAA,IAC5B,CAAC,IAEL,QAAQ,IAAI,KAAK,IAAI;AAAA,EACvB;AAGF,QAAM,UAAU,QAAQ,IAAI,GAAG;AAE/B,MAAI,mBAAmB;AACrB,UAAM;AAGR,SAAO;AACT;",
|
|
5
|
+
"names": ["preloadedData", "pathname", "startTime", "loaderJSUrl", "moduleLoadStart", "module", "moduleLoadTime", "executionStart", "result", "executionTime", "totalTime", "promise", "loader", "data"]
|
|
6
6
|
}
|