one 1.21.7 → 1.21.8
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/dev.native.js.map +1 -1
- package/dist/cjs/cli.cjs +0 -3
- package/dist/cjs/cli.native.js +0 -3
- package/dist/cjs/cli.native.js.map +1 -1
- package/dist/cjs/image/getImageData.cjs +1 -1
- package/dist/cjs/image/getImageData.native.js +1 -1
- package/dist/cjs/image/getImageData.native.js.map +1 -1
- package/dist/cjs/index.native.js.map +1 -1
- package/dist/cjs/layouts/Stack.cjs +5 -5
- package/dist/cjs/layouts/Stack.native.js +5 -5
- package/dist/cjs/layouts/Stack.native.js.map +1 -1
- package/dist/cjs/layouts/stack-utils/StackScreen.cjs +3 -0
- package/dist/cjs/layouts/stack-utils/StackScreen.native.js +3 -0
- package/dist/cjs/layouts/stack-utils/StackScreen.native.js.map +1 -1
- package/dist/cjs/layouts/stack-utils/StackToolbar.cjs +419 -0
- package/dist/cjs/layouts/stack-utils/StackToolbar.native.js +453 -0
- package/dist/cjs/layouts/stack-utils/StackToolbar.native.js.map +1 -0
- package/dist/cjs/layouts/stack-utils/StackToolbar.types.cjs +18 -0
- package/dist/cjs/layouts/stack-utils/StackToolbar.types.native.js +21 -0
- package/dist/cjs/layouts/stack-utils/StackToolbar.types.native.js.map +1 -0
- package/dist/cjs/layouts/stack-utils/__tests__/StackToolbar.runtime.test.cjs +63 -0
- package/dist/cjs/layouts/stack-utils/__tests__/StackToolbar.runtime.test.native.js +73 -0
- package/dist/cjs/layouts/stack-utils/__tests__/StackToolbar.runtime.test.native.js.map +1 -0
- package/dist/cjs/layouts/stack-utils/__tests__/composition.test.cjs +205 -0
- package/dist/cjs/layouts/stack-utils/__tests__/composition.test.native.js +220 -0
- package/dist/cjs/layouts/stack-utils/__tests__/composition.test.native.js.map +1 -1
- package/dist/cjs/layouts/stack-utils/index.cjs +2 -0
- package/dist/cjs/layouts/stack-utils/index.native.js +2 -0
- package/dist/cjs/layouts/stack-utils/index.native.js.map +1 -1
- package/dist/cjs/layouts/withLayoutContext.cjs +39 -8
- package/dist/cjs/layouts/withLayoutContext.native.js +43 -8
- package/dist/cjs/layouts/withLayoutContext.native.js.map +1 -1
- package/dist/cjs/layouts/withLayoutContext.test.cjs +96 -0
- package/dist/cjs/layouts/withLayoutContext.test.native.js +100 -0
- package/dist/cjs/layouts/withLayoutContext.test.native.js.map +1 -0
- package/dist/cjs/router/Route.cjs +3 -0
- package/dist/cjs/router/Route.native.js +3 -0
- package/dist/cjs/router/Route.native.js.map +1 -1
- package/dist/cjs/router/protectedRoutes.test.cjs +22 -0
- package/dist/cjs/router/protectedRoutes.test.native.js +25 -0
- package/dist/cjs/router/protectedRoutes.test.native.js.map +1 -0
- package/dist/cjs/router/router.cjs +26 -8
- package/dist/cjs/router/router.native.js +26 -8
- package/dist/cjs/router/router.native.js.map +1 -1
- package/dist/cjs/router/useScreens.cjs +38 -11
- package/dist/cjs/router/useScreens.native.js +39 -11
- package/dist/cjs/router/useScreens.native.js.map +1 -1
- package/dist/cjs/router/useScreens.test.cjs +134 -0
- package/dist/cjs/router/useScreens.test.native.js +163 -0
- package/dist/cjs/router/useScreens.test.native.js.map +1 -0
- package/dist/cjs/views/Navigator.cjs +14 -6
- package/dist/cjs/views/Navigator.native.js +14 -6
- package/dist/cjs/views/Navigator.native.js.map +1 -1
- package/dist/cjs/views/Protected.native.js.map +1 -1
- package/dist/cjs/views/SuspenseFallback.cjs +18 -0
- package/dist/cjs/views/SuspenseFallback.native.js +21 -0
- package/dist/cjs/views/SuspenseFallback.native.js.map +1 -0
- package/dist/cjs/vite/plugins/fileSystemRouterPlugin.cjs +47 -7
- package/dist/cjs/vite/plugins/fileSystemRouterPlugin.native.js +47 -7
- package/dist/cjs/vite/plugins/fileSystemRouterPlugin.native.js.map +1 -1
- package/dist/cjs/vite/plugins/fileSystemRouterPlugin.test.cjs +15 -6
- package/dist/cjs/vite/plugins/fileSystemRouterPlugin.test.native.js +15 -6
- package/dist/cjs/vite/plugins/fileSystemRouterPlugin.test.native.js.map +1 -1
- package/dist/esm/cli/dev.mjs.map +1 -1
- package/dist/esm/cli/dev.native.js.map +1 -1
- package/dist/esm/cli.mjs +0 -3
- package/dist/esm/cli.mjs.map +1 -1
- package/dist/esm/cli.native.js +0 -3
- package/dist/esm/cli.native.js.map +1 -1
- package/dist/esm/image/getImageData.mjs +1 -1
- package/dist/esm/image/getImageData.mjs.map +1 -1
- package/dist/esm/image/getImageData.native.js +1 -1
- package/dist/esm/image/getImageData.native.js.map +1 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/index.mjs.map +1 -1
- package/dist/esm/index.native.js.map +1 -1
- package/dist/esm/layouts/Stack.mjs +6 -6
- package/dist/esm/layouts/Stack.mjs.map +1 -1
- package/dist/esm/layouts/Stack.native.js +6 -6
- package/dist/esm/layouts/Stack.native.js.map +1 -1
- package/dist/esm/layouts/stack-utils/StackScreen.mjs +3 -0
- package/dist/esm/layouts/stack-utils/StackScreen.mjs.map +1 -1
- package/dist/esm/layouts/stack-utils/StackScreen.native.js +3 -0
- package/dist/esm/layouts/stack-utils/StackScreen.native.js.map +1 -1
- package/dist/esm/layouts/stack-utils/StackToolbar.mjs +384 -0
- package/dist/esm/layouts/stack-utils/StackToolbar.mjs.map +1 -0
- package/dist/esm/layouts/stack-utils/StackToolbar.native.js +416 -0
- package/dist/esm/layouts/stack-utils/StackToolbar.native.js.map +1 -0
- package/dist/esm/layouts/stack-utils/StackToolbar.types.mjs +2 -0
- package/dist/esm/layouts/stack-utils/StackToolbar.types.mjs.map +1 -0
- package/dist/esm/layouts/stack-utils/StackToolbar.types.native.js +2 -0
- package/dist/esm/layouts/stack-utils/StackToolbar.types.native.js.map +1 -0
- package/dist/esm/layouts/stack-utils/__tests__/StackToolbar.runtime.test.mjs +40 -0
- package/dist/esm/layouts/stack-utils/__tests__/StackToolbar.runtime.test.mjs.map +1 -0
- package/dist/esm/layouts/stack-utils/__tests__/StackToolbar.runtime.test.native.js +47 -0
- package/dist/esm/layouts/stack-utils/__tests__/StackToolbar.runtime.test.native.js.map +1 -0
- package/dist/esm/layouts/stack-utils/__tests__/composition.test.mjs +205 -0
- package/dist/esm/layouts/stack-utils/__tests__/composition.test.mjs.map +1 -1
- package/dist/esm/layouts/stack-utils/__tests__/composition.test.native.js +220 -0
- package/dist/esm/layouts/stack-utils/__tests__/composition.test.native.js.map +1 -1
- package/dist/esm/layouts/stack-utils/index.mjs +2 -1
- package/dist/esm/layouts/stack-utils/index.mjs.map +1 -1
- package/dist/esm/layouts/stack-utils/index.native.js +2 -1
- package/dist/esm/layouts/stack-utils/index.native.js.map +1 -1
- package/dist/esm/layouts/withLayoutContext.mjs +41 -11
- package/dist/esm/layouts/withLayoutContext.mjs.map +1 -1
- package/dist/esm/layouts/withLayoutContext.native.js +45 -11
- package/dist/esm/layouts/withLayoutContext.native.js.map +1 -1
- package/dist/esm/layouts/withLayoutContext.test.mjs +73 -0
- package/dist/esm/layouts/withLayoutContext.test.mjs.map +1 -0
- package/dist/esm/layouts/withLayoutContext.test.native.js +74 -0
- package/dist/esm/layouts/withLayoutContext.test.native.js.map +1 -0
- package/dist/esm/router/Route.mjs +3 -1
- package/dist/esm/router/Route.mjs.map +1 -1
- package/dist/esm/router/Route.native.js +3 -1
- package/dist/esm/router/Route.native.js.map +1 -1
- package/dist/esm/router/protectedRoutes.test.mjs +23 -0
- package/dist/esm/router/protectedRoutes.test.mjs.map +1 -0
- package/dist/esm/router/protectedRoutes.test.native.js +23 -0
- package/dist/esm/router/protectedRoutes.test.native.js.map +1 -0
- package/dist/esm/router/router.mjs +26 -9
- package/dist/esm/router/router.mjs.map +1 -1
- package/dist/esm/router/router.native.js +26 -9
- package/dist/esm/router/router.native.js.map +1 -1
- package/dist/esm/router/useScreens.mjs +39 -11
- package/dist/esm/router/useScreens.mjs.map +1 -1
- package/dist/esm/router/useScreens.native.js +40 -11
- package/dist/esm/router/useScreens.native.js.map +1 -1
- package/dist/esm/router/useScreens.test.mjs +105 -0
- package/dist/esm/router/useScreens.test.mjs.map +1 -0
- package/dist/esm/router/useScreens.test.native.js +130 -0
- package/dist/esm/router/useScreens.test.native.js.map +1 -0
- package/dist/esm/views/Navigator.mjs +15 -7
- package/dist/esm/views/Navigator.mjs.map +1 -1
- package/dist/esm/views/Navigator.native.js +15 -7
- package/dist/esm/views/Navigator.native.js.map +1 -1
- package/dist/esm/views/Protected.mjs.map +1 -1
- package/dist/esm/views/Protected.native.js.map +1 -1
- package/dist/esm/views/SuspenseFallback.mjs +2 -0
- package/dist/esm/views/SuspenseFallback.mjs.map +1 -0
- package/dist/esm/views/SuspenseFallback.native.js +2 -0
- package/dist/esm/views/SuspenseFallback.native.js.map +1 -0
- package/dist/esm/vite/plugins/fileSystemRouterPlugin.mjs +47 -7
- package/dist/esm/vite/plugins/fileSystemRouterPlugin.mjs.map +1 -1
- package/dist/esm/vite/plugins/fileSystemRouterPlugin.native.js +47 -7
- package/dist/esm/vite/plugins/fileSystemRouterPlugin.native.js.map +1 -1
- package/dist/esm/vite/plugins/fileSystemRouterPlugin.test.mjs +15 -6
- package/dist/esm/vite/plugins/fileSystemRouterPlugin.test.mjs.map +1 -1
- package/dist/esm/vite/plugins/fileSystemRouterPlugin.test.native.js +15 -6
- package/dist/esm/vite/plugins/fileSystemRouterPlugin.test.native.js.map +1 -1
- package/package.json +12 -11
- package/src/cli/dev.ts +0 -1
- package/src/cli.ts +0 -3
- package/src/image/getImageData.ts +2 -2
- package/src/index.ts +12 -0
- package/src/layouts/Stack.tsx +6 -4
- package/src/layouts/stack-utils/README.md +1 -0
- package/src/layouts/stack-utils/StackScreen.tsx +7 -0
- package/src/layouts/stack-utils/StackToolbar.tsx +550 -0
- package/src/layouts/stack-utils/StackToolbar.types.ts +98 -0
- package/src/layouts/stack-utils/__tests__/StackToolbar.runtime.test.tsx +46 -0
- package/src/layouts/stack-utils/__tests__/composition.test.tsx +176 -0
- package/src/layouts/stack-utils/index.tsx +16 -0
- package/src/layouts/withLayoutContext.test.tsx +74 -0
- package/src/layouts/withLayoutContext.tsx +71 -12
- package/src/router/Route.tsx +8 -0
- package/src/router/protectedRoutes.test.ts +35 -0
- package/src/router/router.ts +48 -20
- package/src/router/useScreens.test.tsx +139 -0
- package/src/router/useScreens.tsx +59 -13
- package/src/views/Navigator.tsx +25 -5
- package/src/views/Protected.tsx +3 -0
- package/src/views/SuspenseFallback.ts +7 -0
- package/src/vite/plugins/fileSystemRouterPlugin.test.ts +15 -6
- package/src/vite/plugins/fileSystemRouterPlugin.tsx +52 -7
- package/types/cli/dev.d.ts +0 -1
- package/types/cli/dev.d.ts.map +1 -1
- package/types/image/getImageData.d.ts +1 -1
- package/types/image/getImageData.d.ts.map +1 -1
- package/types/index.d.ts +2 -1
- package/types/index.d.ts.map +1 -1
- package/types/layouts/Stack.d.ts +11 -0
- package/types/layouts/Stack.d.ts.map +1 -1
- package/types/layouts/stack-utils/StackScreen.d.ts.map +1 -1
- package/types/layouts/stack-utils/StackToolbar.d.ts +26 -0
- package/types/layouts/stack-utils/StackToolbar.d.ts.map +1 -0
- package/types/layouts/stack-utils/StackToolbar.types.d.ts +82 -0
- package/types/layouts/stack-utils/StackToolbar.types.d.ts.map +1 -0
- package/types/layouts/stack-utils/index.d.ts +3 -1
- package/types/layouts/stack-utils/index.d.ts.map +1 -1
- package/types/layouts/withLayoutContext.d.ts +7 -0
- package/types/layouts/withLayoutContext.d.ts.map +1 -1
- package/types/layouts/withLayoutContext.test.d.ts +2 -0
- package/types/layouts/withLayoutContext.test.d.ts.map +1 -0
- package/types/router/Route.d.ts +4 -0
- package/types/router/Route.d.ts.map +1 -1
- package/types/router/protectedRoutes.test.d.ts +2 -0
- package/types/router/protectedRoutes.test.d.ts.map +1 -0
- package/types/router/router.d.ts +4 -6
- package/types/router/router.d.ts.map +1 -1
- package/types/router/useScreens.d.ts.map +1 -1
- package/types/router/useScreens.test.d.ts +2 -0
- package/types/router/useScreens.test.d.ts.map +1 -0
- package/types/views/Navigator.d.ts.map +1 -1
- package/types/views/Protected.d.ts +3 -0
- package/types/views/Protected.d.ts.map +1 -1
- package/types/views/SuspenseFallback.d.ts +8 -0
- package/types/views/SuspenseFallback.d.ts.map +1 -0
- package/types/vite/plugins/fileSystemRouterPlugin.d.ts.map +1 -1
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
import TestRenderer, { act } from "react-test-renderer";
|
|
2
|
+
import { afterEach, beforeEach, describe, expect, it } from "vitest";
|
|
3
|
+
import { getQualifiedRouteComponent } from "./useScreens.mjs";
|
|
4
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
5
|
+
const pendingRoute = new Promise(() => {});
|
|
6
|
+
const previousTarget = "web";
|
|
7
|
+
const previousSuspendRoutesNative = process.env.ONE_SUSPEND_ROUTES_NATIVE;
|
|
8
|
+
const previousDisableSuspense = globalThis.__ONE_DISABLE_SUSPENSE_ROUTES__;
|
|
9
|
+
function createRouteNode(type, route, contextKey, loadRoute) {
|
|
10
|
+
return {
|
|
11
|
+
type,
|
|
12
|
+
route,
|
|
13
|
+
contextKey,
|
|
14
|
+
loadRoute,
|
|
15
|
+
children: [],
|
|
16
|
+
dynamic: null
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
function SuspendingRoute() {
|
|
20
|
+
throw pendingRoute;
|
|
21
|
+
}
|
|
22
|
+
beforeEach(() => {
|
|
23
|
+
process.env.TAMAGUI_TARGET = "native";
|
|
24
|
+
delete process.env.ONE_SUSPEND_ROUTES_NATIVE;
|
|
25
|
+
delete globalThis.__ONE_DISABLE_SUSPENSE_ROUTES__;
|
|
26
|
+
});
|
|
27
|
+
afterEach(() => {
|
|
28
|
+
if (previousTarget === void 0) delete "web";else process.env.TAMAGUI_TARGET = previousTarget;
|
|
29
|
+
if (previousSuspendRoutesNative === void 0) delete process.env.ONE_SUSPEND_ROUTES_NATIVE;else process.env.ONE_SUSPEND_ROUTES_NATIVE = previousSuspendRoutesNative;
|
|
30
|
+
if (previousDisableSuspense === void 0) delete globalThis.__ONE_DISABLE_SUSPENSE_ROUTES__;else globalThis.__ONE_DISABLE_SUSPENSE_ROUTES__ = previousDisableSuspense;
|
|
31
|
+
});
|
|
32
|
+
describe("route SuspenseFallback", () => {
|
|
33
|
+
it("inherits the layout fallback and passes the suspended route details", async () => {
|
|
34
|
+
const ChildRoute = getQualifiedRouteComponent(createRouteNode("spa", "profile/[id]", "./(app)/profile/[id].tsx", () => {
|
|
35
|
+
throw pendingRoute;
|
|
36
|
+
}));
|
|
37
|
+
const LayoutRoute = getQualifiedRouteComponent(createRouteNode("layout", "(app)", "./(app)/_layout.tsx", () => ({
|
|
38
|
+
default: () => /* @__PURE__ */jsx(ChildRoute, {
|
|
39
|
+
route: {
|
|
40
|
+
params: {
|
|
41
|
+
id: "123"
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
}),
|
|
45
|
+
SuspenseFallback: ({
|
|
46
|
+
route,
|
|
47
|
+
params
|
|
48
|
+
}) => /* @__PURE__ */jsxs("div", {
|
|
49
|
+
"data-fallback": "layout",
|
|
50
|
+
children: [route, ":", params.id]
|
|
51
|
+
})
|
|
52
|
+
})));
|
|
53
|
+
let renderer;
|
|
54
|
+
await act(async () => {
|
|
55
|
+
renderer = TestRenderer.create(/* @__PURE__ */jsx(LayoutRoute, {}));
|
|
56
|
+
});
|
|
57
|
+
expect(renderer.root.findByProps({
|
|
58
|
+
"data-fallback": "layout"
|
|
59
|
+
}).children).toEqual(["./(app)/profile/[id].tsx", ":", "123"]);
|
|
60
|
+
});
|
|
61
|
+
it("uses the nearest layout fallback", async () => {
|
|
62
|
+
const ChildRoute = getQualifiedRouteComponent(createRouteNode("spa", "profile", "./(app)/profile.tsx", () => ({
|
|
63
|
+
default: SuspendingRoute
|
|
64
|
+
})));
|
|
65
|
+
const NestedLayoutRoute = getQualifiedRouteComponent(createRouteNode("layout", "(app)", "./(app)/_layout.tsx", () => ({
|
|
66
|
+
default: () => /* @__PURE__ */jsx(ChildRoute, {}),
|
|
67
|
+
SuspenseFallback: () => /* @__PURE__ */jsx("div", {
|
|
68
|
+
"data-fallback": "nested"
|
|
69
|
+
})
|
|
70
|
+
})));
|
|
71
|
+
const RootLayoutRoute = getQualifiedRouteComponent(createRouteNode("layout", "", "./_layout.tsx", () => ({
|
|
72
|
+
default: () => /* @__PURE__ */jsx(NestedLayoutRoute, {}),
|
|
73
|
+
SuspenseFallback: () => /* @__PURE__ */jsx("div", {
|
|
74
|
+
"data-fallback": "root"
|
|
75
|
+
})
|
|
76
|
+
})));
|
|
77
|
+
let renderer;
|
|
78
|
+
await act(async () => {
|
|
79
|
+
renderer = TestRenderer.create(/* @__PURE__ */jsx(RootLayoutRoute, {}));
|
|
80
|
+
});
|
|
81
|
+
expect(renderer.root.findAllByProps({
|
|
82
|
+
"data-fallback": "nested"
|
|
83
|
+
})).toHaveLength(1);
|
|
84
|
+
expect(renderer.root.findAllByProps({
|
|
85
|
+
"data-fallback": "root"
|
|
86
|
+
})).toHaveLength(0);
|
|
87
|
+
});
|
|
88
|
+
it("ignores a SuspenseFallback exported from a leaf route", async () => {
|
|
89
|
+
const ChildRoute = getQualifiedRouteComponent(createRouteNode("spa", "profile", "./profile.tsx", () => ({
|
|
90
|
+
default: SuspendingRoute,
|
|
91
|
+
SuspenseFallback: () => /* @__PURE__ */jsx("div", {
|
|
92
|
+
"data-fallback": "leaf"
|
|
93
|
+
})
|
|
94
|
+
})));
|
|
95
|
+
let renderer;
|
|
96
|
+
await act(async () => {
|
|
97
|
+
renderer = TestRenderer.create(/* @__PURE__ */jsx(ChildRoute, {}));
|
|
98
|
+
});
|
|
99
|
+
expect(renderer.root.findAllByProps({
|
|
100
|
+
"data-fallback": "leaf"
|
|
101
|
+
})).toHaveLength(0);
|
|
102
|
+
expect(renderer.toJSON()).toBeNull();
|
|
103
|
+
});
|
|
104
|
+
});
|
|
105
|
+
//# sourceMappingURL=useScreens.test.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["TestRenderer","act","afterEach","beforeEach","describe","expect","it","getQualifiedRouteComponent","jsx","jsxs","pendingRoute","Promise","previousTarget","previousSuspendRoutesNative","process","env","ONE_SUSPEND_ROUTES_NATIVE","previousDisableSuspense","globalThis","__ONE_DISABLE_SUSPENSE_ROUTES__","createRouteNode","type","route","contextKey","loadRoute","children","dynamic","SuspendingRoute","TAMAGUI_TARGET","ChildRoute","LayoutRoute","default","params","id","SuspenseFallback","renderer","create","root","findByProps","toEqual","NestedLayoutRoute","RootLayoutRoute","findAllByProps","toHaveLength","toJSON","toBeNull"],"sources":["useScreens.test.mjs"],"sourcesContent":["import TestRenderer, { act } from \"react-test-renderer\";\nimport { afterEach, beforeEach, describe, expect, it } from \"vitest\";\nimport { getQualifiedRouteComponent } from \"./useScreens\";\nimport { jsx, jsxs } from \"react/jsx-runtime\";\n\nconst pendingRoute = new Promise(() => {});\nconst previousTarget = \"web\";\nconst previousSuspendRoutesNative = process.env.ONE_SUSPEND_ROUTES_NATIVE;\nconst previousDisableSuspense = globalThis.__ONE_DISABLE_SUSPENSE_ROUTES__;\nfunction createRouteNode(type, route, contextKey, loadRoute) {\n\treturn {\n\t\ttype,\n\t\troute,\n\t\tcontextKey,\n\t\tloadRoute,\n\t\tchildren: [],\n\t\tdynamic: null\n\t};\n}\nfunction SuspendingRoute() {\n\tthrow pendingRoute;\n}\nbeforeEach(() => {\n\tprocess.env.TAMAGUI_TARGET = \"native\";\n\tdelete process.env.ONE_SUSPEND_ROUTES_NATIVE;\n\tdelete globalThis.__ONE_DISABLE_SUSPENSE_ROUTES__;\n});\nafterEach(() => {\n\tif (previousTarget === void 0) delete \"web\";\n\telse process.env.TAMAGUI_TARGET = previousTarget;\n\tif (previousSuspendRoutesNative === void 0) delete process.env.ONE_SUSPEND_ROUTES_NATIVE;\n\telse process.env.ONE_SUSPEND_ROUTES_NATIVE = previousSuspendRoutesNative;\n\tif (previousDisableSuspense === void 0) delete globalThis.__ONE_DISABLE_SUSPENSE_ROUTES__;\n\telse globalThis.__ONE_DISABLE_SUSPENSE_ROUTES__ = previousDisableSuspense;\n});\ndescribe(\"route SuspenseFallback\", () => {\n\tit(\"inherits the layout fallback and passes the suspended route details\", async () => {\n\t\tconst ChildRoute = getQualifiedRouteComponent(createRouteNode(\"spa\", \"profile/[id]\", \"./(app)/profile/[id].tsx\", () => {\n\t\t\tthrow pendingRoute;\n\t\t}));\n\t\tconst LayoutRoute = getQualifiedRouteComponent(createRouteNode(\"layout\", \"(app)\", \"./(app)/_layout.tsx\", () => ({\n\t\t\tdefault: () => /* @__PURE__ */ jsx(ChildRoute, { route: { params: { id: \"123\" } } }),\n\t\t\tSuspenseFallback: ({ route, params }) => /* @__PURE__ */ jsxs(\"div\", {\n\t\t\t\t\"data-fallback\": \"layout\",\n\t\t\t\tchildren: [\n\t\t\t\t\troute,\n\t\t\t\t\t\":\",\n\t\t\t\t\tparams.id\n\t\t\t\t]\n\t\t\t})\n\t\t})));\n\t\tlet renderer;\n\t\tawait act(async () => {\n\t\t\trenderer = TestRenderer.create(/* @__PURE__ */ jsx(LayoutRoute, {}));\n\t\t});\n\t\texpect(renderer.root.findByProps({ \"data-fallback\": \"layout\" }).children).toEqual([\n\t\t\t\"./(app)/profile/[id].tsx\",\n\t\t\t\":\",\n\t\t\t\"123\"\n\t\t]);\n\t});\n\tit(\"uses the nearest layout fallback\", async () => {\n\t\tconst ChildRoute = getQualifiedRouteComponent(createRouteNode(\"spa\", \"profile\", \"./(app)/profile.tsx\", () => ({ default: SuspendingRoute })));\n\t\tconst NestedLayoutRoute = getQualifiedRouteComponent(createRouteNode(\"layout\", \"(app)\", \"./(app)/_layout.tsx\", () => ({\n\t\t\tdefault: () => /* @__PURE__ */ jsx(ChildRoute, {}),\n\t\t\tSuspenseFallback: () => /* @__PURE__ */ jsx(\"div\", { \"data-fallback\": \"nested\" })\n\t\t})));\n\t\tconst RootLayoutRoute = getQualifiedRouteComponent(createRouteNode(\"layout\", \"\", \"./_layout.tsx\", () => ({\n\t\t\tdefault: () => /* @__PURE__ */ jsx(NestedLayoutRoute, {}),\n\t\t\tSuspenseFallback: () => /* @__PURE__ */ jsx(\"div\", { \"data-fallback\": \"root\" })\n\t\t})));\n\t\tlet renderer;\n\t\tawait act(async () => {\n\t\t\trenderer = TestRenderer.create(/* @__PURE__ */ jsx(RootLayoutRoute, {}));\n\t\t});\n\t\texpect(renderer.root.findAllByProps({ \"data-fallback\": \"nested\" })).toHaveLength(1);\n\t\texpect(renderer.root.findAllByProps({ \"data-fallback\": \"root\" })).toHaveLength(0);\n\t});\n\tit(\"ignores a SuspenseFallback exported from a leaf route\", async () => {\n\t\tconst ChildRoute = getQualifiedRouteComponent(createRouteNode(\"spa\", \"profile\", \"./profile.tsx\", () => ({\n\t\t\tdefault: SuspendingRoute,\n\t\t\tSuspenseFallback: () => /* @__PURE__ */ jsx(\"div\", { \"data-fallback\": \"leaf\" })\n\t\t})));\n\t\tlet renderer;\n\t\tawait act(async () => {\n\t\t\trenderer = TestRenderer.create(/* @__PURE__ */ jsx(ChildRoute, {}));\n\t\t});\n\t\texpect(renderer.root.findAllByProps({ \"data-fallback\": \"leaf\" })).toHaveLength(0);\n\t\texpect(renderer.toJSON()).toBeNull();\n\t});\n});\n\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
2
|
+
import TestRenderer, { act } from "react-test-renderer";
|
|
3
|
+
import { afterEach, beforeEach, describe, expect, it } from "vitest";
|
|
4
|
+
import { getQualifiedRouteComponent } from "./useScreens.native.js";
|
|
5
|
+
var pendingRoute = new Promise(function () {});
|
|
6
|
+
var previousTarget = "native";
|
|
7
|
+
var previousSuspendRoutesNative = process.env.ONE_SUSPEND_ROUTES_NATIVE;
|
|
8
|
+
var previousDisableSuspense = globalThis.__ONE_DISABLE_SUSPENSE_ROUTES__;
|
|
9
|
+
function createRouteNode(type, route, contextKey, loadRoute) {
|
|
10
|
+
return {
|
|
11
|
+
type,
|
|
12
|
+
route,
|
|
13
|
+
contextKey,
|
|
14
|
+
loadRoute,
|
|
15
|
+
children: [],
|
|
16
|
+
dynamic: null
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
function SuspendingRoute() {
|
|
20
|
+
throw pendingRoute;
|
|
21
|
+
}
|
|
22
|
+
beforeEach(function () {
|
|
23
|
+
process.env.TAMAGUI_TARGET = "native";
|
|
24
|
+
delete process.env.ONE_SUSPEND_ROUTES_NATIVE;
|
|
25
|
+
delete globalThis.__ONE_DISABLE_SUSPENSE_ROUTES__;
|
|
26
|
+
});
|
|
27
|
+
afterEach(function () {
|
|
28
|
+
if (previousTarget === void 0) delete "native";else process.env.TAMAGUI_TARGET = previousTarget;
|
|
29
|
+
if (previousSuspendRoutesNative === void 0) delete process.env.ONE_SUSPEND_ROUTES_NATIVE;else process.env.ONE_SUSPEND_ROUTES_NATIVE = previousSuspendRoutesNative;
|
|
30
|
+
if (previousDisableSuspense === void 0) delete globalThis.__ONE_DISABLE_SUSPENSE_ROUTES__;else globalThis.__ONE_DISABLE_SUSPENSE_ROUTES__ = previousDisableSuspense;
|
|
31
|
+
});
|
|
32
|
+
describe("route SuspenseFallback", function () {
|
|
33
|
+
it("inherits the layout fallback and passes the suspended route details", async function () {
|
|
34
|
+
var ChildRoute = getQualifiedRouteComponent(createRouteNode("spa", "profile/[id]", "./(app)/profile/[id].tsx", function () {
|
|
35
|
+
throw pendingRoute;
|
|
36
|
+
}));
|
|
37
|
+
var LayoutRoute = getQualifiedRouteComponent(createRouteNode("layout", "(app)", "./(app)/_layout.tsx", function () {
|
|
38
|
+
return {
|
|
39
|
+
default: function () {
|
|
40
|
+
return /* @__PURE__ */jsx(ChildRoute, {
|
|
41
|
+
route: {
|
|
42
|
+
params: {
|
|
43
|
+
id: "123"
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
});
|
|
47
|
+
},
|
|
48
|
+
SuspenseFallback: function (param) {
|
|
49
|
+
var {
|
|
50
|
+
route,
|
|
51
|
+
params
|
|
52
|
+
} = param;
|
|
53
|
+
return /* @__PURE__ */jsxs("div", {
|
|
54
|
+
"data-fallback": "layout",
|
|
55
|
+
children: [route, ":", params.id]
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
};
|
|
59
|
+
}));
|
|
60
|
+
var renderer;
|
|
61
|
+
await act(async function () {
|
|
62
|
+
renderer = TestRenderer.create(/* @__PURE__ */jsx(LayoutRoute, {}));
|
|
63
|
+
});
|
|
64
|
+
expect(renderer.root.findByProps({
|
|
65
|
+
"data-fallback": "layout"
|
|
66
|
+
}).children).toEqual(["./(app)/profile/[id].tsx", ":", "123"]);
|
|
67
|
+
});
|
|
68
|
+
it("uses the nearest layout fallback", async function () {
|
|
69
|
+
var ChildRoute = getQualifiedRouteComponent(createRouteNode("spa", "profile", "./(app)/profile.tsx", function () {
|
|
70
|
+
return {
|
|
71
|
+
default: SuspendingRoute
|
|
72
|
+
};
|
|
73
|
+
}));
|
|
74
|
+
var NestedLayoutRoute = getQualifiedRouteComponent(createRouteNode("layout", "(app)", "./(app)/_layout.tsx", function () {
|
|
75
|
+
return {
|
|
76
|
+
default: function () {
|
|
77
|
+
return /* @__PURE__ */jsx(ChildRoute, {});
|
|
78
|
+
},
|
|
79
|
+
SuspenseFallback: function () {
|
|
80
|
+
return /* @__PURE__ */jsx("div", {
|
|
81
|
+
"data-fallback": "nested"
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
};
|
|
85
|
+
}));
|
|
86
|
+
var RootLayoutRoute = getQualifiedRouteComponent(createRouteNode("layout", "", "./_layout.tsx", function () {
|
|
87
|
+
return {
|
|
88
|
+
default: function () {
|
|
89
|
+
return /* @__PURE__ */jsx(NestedLayoutRoute, {});
|
|
90
|
+
},
|
|
91
|
+
SuspenseFallback: function () {
|
|
92
|
+
return /* @__PURE__ */jsx("div", {
|
|
93
|
+
"data-fallback": "root"
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
};
|
|
97
|
+
}));
|
|
98
|
+
var renderer;
|
|
99
|
+
await act(async function () {
|
|
100
|
+
renderer = TestRenderer.create(/* @__PURE__ */jsx(RootLayoutRoute, {}));
|
|
101
|
+
});
|
|
102
|
+
expect(renderer.root.findAllByProps({
|
|
103
|
+
"data-fallback": "nested"
|
|
104
|
+
})).toHaveLength(1);
|
|
105
|
+
expect(renderer.root.findAllByProps({
|
|
106
|
+
"data-fallback": "root"
|
|
107
|
+
})).toHaveLength(0);
|
|
108
|
+
});
|
|
109
|
+
it("ignores a SuspenseFallback exported from a leaf route", async function () {
|
|
110
|
+
var ChildRoute = getQualifiedRouteComponent(createRouteNode("spa", "profile", "./profile.tsx", function () {
|
|
111
|
+
return {
|
|
112
|
+
default: SuspendingRoute,
|
|
113
|
+
SuspenseFallback: function () {
|
|
114
|
+
return /* @__PURE__ */jsx("div", {
|
|
115
|
+
"data-fallback": "leaf"
|
|
116
|
+
});
|
|
117
|
+
}
|
|
118
|
+
};
|
|
119
|
+
}));
|
|
120
|
+
var renderer;
|
|
121
|
+
await act(async function () {
|
|
122
|
+
renderer = TestRenderer.create(/* @__PURE__ */jsx(ChildRoute, {}));
|
|
123
|
+
});
|
|
124
|
+
expect(renderer.root.findAllByProps({
|
|
125
|
+
"data-fallback": "leaf"
|
|
126
|
+
})).toHaveLength(0);
|
|
127
|
+
expect(renderer.toJSON()).toBeNull();
|
|
128
|
+
});
|
|
129
|
+
});
|
|
130
|
+
//# sourceMappingURL=useScreens.test.native.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["jsx","jsxs","TestRenderer","act","afterEach","beforeEach","describe","expect","it","getQualifiedRouteComponent","pendingRoute","Promise","previousTarget","previousSuspendRoutesNative","process","env","ONE_SUSPEND_ROUTES_NATIVE","previousDisableSuspense","globalThis","__ONE_DISABLE_SUSPENSE_ROUTES__","createRouteNode","type","route","contextKey","loadRoute","children","dynamic","SuspendingRoute","TAMAGUI_TARGET","ChildRoute","LayoutRoute","default","params","id","SuspenseFallback","param","renderer","create","root","findByProps","toEqual","NestedLayoutRoute","RootLayoutRoute","findAllByProps","toHaveLength","toJSON","toBeNull"],"sources":["useScreens.test.native.js"],"sourcesContent":["import { jsx, jsxs } from \"react/jsx-runtime\";\n\nimport TestRenderer, { act } from \"react-test-renderer\";\nimport { afterEach, beforeEach, describe, expect, it } from \"vitest\";\nimport { getQualifiedRouteComponent } from \"./useScreens\";\n\nvar pendingRoute = new Promise(function() {});\nvar previousTarget = \"native\";\nvar previousSuspendRoutesNative = process.env.ONE_SUSPEND_ROUTES_NATIVE;\nvar previousDisableSuspense = globalThis.__ONE_DISABLE_SUSPENSE_ROUTES__;\nfunction createRouteNode(type, route, contextKey, loadRoute) {\n\treturn {\n\t\ttype,\n\t\troute,\n\t\tcontextKey,\n\t\tloadRoute,\n\t\tchildren: [],\n\t\tdynamic: null\n\t};\n}\nfunction SuspendingRoute() {\n\tthrow pendingRoute;\n}\nbeforeEach(function() {\n\tprocess.env.TAMAGUI_TARGET = \"native\";\n\tdelete process.env.ONE_SUSPEND_ROUTES_NATIVE;\n\tdelete globalThis.__ONE_DISABLE_SUSPENSE_ROUTES__;\n});\nafterEach(function() {\n\tif (previousTarget === void 0) delete \"native\";\n\telse process.env.TAMAGUI_TARGET = previousTarget;\n\tif (previousSuspendRoutesNative === void 0) delete process.env.ONE_SUSPEND_ROUTES_NATIVE;\n\telse process.env.ONE_SUSPEND_ROUTES_NATIVE = previousSuspendRoutesNative;\n\tif (previousDisableSuspense === void 0) delete globalThis.__ONE_DISABLE_SUSPENSE_ROUTES__;\n\telse globalThis.__ONE_DISABLE_SUSPENSE_ROUTES__ = previousDisableSuspense;\n});\ndescribe(\"route SuspenseFallback\", function() {\n\tit(\"inherits the layout fallback and passes the suspended route details\", async function() {\n\t\tvar ChildRoute = getQualifiedRouteComponent(createRouteNode(\"spa\", \"profile/[id]\", \"./(app)/profile/[id].tsx\", function() {\n\t\t\tthrow pendingRoute;\n\t\t}));\n\t\tvar LayoutRoute = getQualifiedRouteComponent(createRouteNode(\"layout\", \"(app)\", \"./(app)/_layout.tsx\", function() {\n\t\t\treturn {\n\t\t\t\tdefault: function() {\n\t\t\t\t\treturn /* @__PURE__ */ jsx(ChildRoute, { route: { params: { id: \"123\" } } });\n\t\t\t\t},\n\t\t\t\tSuspenseFallback: function(param) {\n\t\t\t\t\tvar { route, params } = param;\n\t\t\t\t\treturn /* @__PURE__ */ jsxs(\"div\", {\n\t\t\t\t\t\t\"data-fallback\": \"layout\",\n\t\t\t\t\t\tchildren: [\n\t\t\t\t\t\t\troute,\n\t\t\t\t\t\t\t\":\",\n\t\t\t\t\t\t\tparams.id\n\t\t\t\t\t\t]\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t};\n\t\t}));\n\t\tvar renderer;\n\t\tawait act(async function() {\n\t\t\trenderer = TestRenderer.create(/* @__PURE__ */ jsx(LayoutRoute, {}));\n\t\t});\n\t\texpect(renderer.root.findByProps({ \"data-fallback\": \"layout\" }).children).toEqual([\n\t\t\t\"./(app)/profile/[id].tsx\",\n\t\t\t\":\",\n\t\t\t\"123\"\n\t\t]);\n\t});\n\tit(\"uses the nearest layout fallback\", async function() {\n\t\tvar ChildRoute = getQualifiedRouteComponent(createRouteNode(\"spa\", \"profile\", \"./(app)/profile.tsx\", function() {\n\t\t\treturn { default: SuspendingRoute };\n\t\t}));\n\t\tvar NestedLayoutRoute = getQualifiedRouteComponent(createRouteNode(\"layout\", \"(app)\", \"./(app)/_layout.tsx\", function() {\n\t\t\treturn {\n\t\t\t\tdefault: function() {\n\t\t\t\t\treturn /* @__PURE__ */ jsx(ChildRoute, {});\n\t\t\t\t},\n\t\t\t\tSuspenseFallback: function() {\n\t\t\t\t\treturn /* @__PURE__ */ jsx(\"div\", { \"data-fallback\": \"nested\" });\n\t\t\t\t}\n\t\t\t};\n\t\t}));\n\t\tvar RootLayoutRoute = getQualifiedRouteComponent(createRouteNode(\"layout\", \"\", \"./_layout.tsx\", function() {\n\t\t\treturn {\n\t\t\t\tdefault: function() {\n\t\t\t\t\treturn /* @__PURE__ */ jsx(NestedLayoutRoute, {});\n\t\t\t\t},\n\t\t\t\tSuspenseFallback: function() {\n\t\t\t\t\treturn /* @__PURE__ */ jsx(\"div\", { \"data-fallback\": \"root\" });\n\t\t\t\t}\n\t\t\t};\n\t\t}));\n\t\tvar renderer;\n\t\tawait act(async function() {\n\t\t\trenderer = TestRenderer.create(/* @__PURE__ */ jsx(RootLayoutRoute, {}));\n\t\t});\n\t\texpect(renderer.root.findAllByProps({ \"data-fallback\": \"nested\" })).toHaveLength(1);\n\t\texpect(renderer.root.findAllByProps({ \"data-fallback\": \"root\" })).toHaveLength(0);\n\t});\n\tit(\"ignores a SuspenseFallback exported from a leaf route\", async function() {\n\t\tvar ChildRoute = getQualifiedRouteComponent(createRouteNode(\"spa\", \"profile\", \"./profile.tsx\", function() {\n\t\t\treturn {\n\t\t\t\tdefault: SuspendingRoute,\n\t\t\t\tSuspenseFallback: function() {\n\t\t\t\t\treturn /* @__PURE__ */ jsx(\"div\", { \"data-fallback\": \"leaf\" });\n\t\t\t\t}\n\t\t\t};\n\t\t}));\n\t\tvar renderer;\n\t\tawait act(async function() {\n\t\t\trenderer = TestRenderer.create(/* @__PURE__ */ jsx(ChildRoute, {}));\n\t\t});\n\t\texpect(renderer.root.findAllByProps({ \"data-fallback\": \"leaf\" })).toHaveLength(0);\n\t\texpect(renderer.toJSON()).toBeNull();\n\t});\n});\n\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -2,12 +2,11 @@ import { StackRouter, useNavigationBuilder } from "@react-navigation/native";
|
|
|
2
2
|
import { NavigationRouteContext } from "@react-navigation/core";
|
|
3
3
|
import * as React from "react";
|
|
4
4
|
import { SafeAreaView } from "react-native-safe-area-context";
|
|
5
|
-
import { useFilterScreenChildren } from "../layouts/withLayoutContext.mjs";
|
|
5
|
+
import { useFilterScreenChildren, useResolvedGuardedRedirects } from "../layouts/withLayoutContext.mjs";
|
|
6
6
|
import { findNearestNotFoundRoute, findRouteNodeByPath, useNotFoundState } from "../notFoundState.mjs";
|
|
7
7
|
import { useContextKey } from "../router/Route.mjs";
|
|
8
8
|
import { getResolvedLinking } from "../router/linkingConfig.mjs";
|
|
9
|
-
import { routeNode as globalRouteNode, getSafeWindowPathname, initialPathname, lastIntendedPathname } from "../router/router.mjs";
|
|
10
|
-
import { registerProtectedRoutes, unregisterProtectedRoutes } from "../router/router.mjs";
|
|
9
|
+
import { routeNode as globalRouteNode, getSafeWindowPathname, initialPathname, lastIntendedPathname, replace, registerProtectedRoutes, resolveProtectedHref, routeInfo, unregisterProtectedRoutes } from "../router/router.mjs";
|
|
11
10
|
import { useSortedScreens, getQualifiedRouteComponent } from "../router/useScreens.mjs";
|
|
12
11
|
import { Screen } from "./Screen.mjs";
|
|
13
12
|
import { registerClearSlotStates, registerSetSlotState } from "../router/interceptRoutes.mjs";
|
|
@@ -76,18 +75,27 @@ function Navigator({
|
|
|
76
75
|
const {
|
|
77
76
|
screens,
|
|
78
77
|
children: otherSlot,
|
|
79
|
-
protectedScreens
|
|
78
|
+
protectedScreens,
|
|
79
|
+
guardedRedirects
|
|
80
80
|
} = useFilterScreenChildren(children, {
|
|
81
81
|
isCustomNavigator: true,
|
|
82
82
|
contextKey
|
|
83
83
|
});
|
|
84
|
-
|
|
84
|
+
const resolvedGuardedRedirects = useResolvedGuardedRedirects(guardedRedirects);
|
|
85
|
+
registerProtectedRoutes(contextKey, resolvedGuardedRedirects);
|
|
86
|
+
const currentPathname = routeInfo?.pathname;
|
|
87
|
+
const protectedHref = currentPathname ? resolveProtectedHref(currentPathname) : currentPathname;
|
|
85
88
|
React.useEffect(() => {
|
|
86
|
-
registerProtectedRoutes(contextKey,
|
|
89
|
+
registerProtectedRoutes(contextKey, resolvedGuardedRedirects);
|
|
87
90
|
return () => {
|
|
88
91
|
unregisterProtectedRoutes(contextKey);
|
|
89
92
|
};
|
|
90
|
-
}, [contextKey,
|
|
93
|
+
}, [contextKey, resolvedGuardedRedirects]);
|
|
94
|
+
React.useEffect(() => {
|
|
95
|
+
if (currentPathname && protectedHref && protectedHref !== currentPathname) {
|
|
96
|
+
replace(protectedHref);
|
|
97
|
+
}
|
|
98
|
+
}, [currentPathname, protectedHref]);
|
|
91
99
|
const sorted = useSortedScreens(screens ?? [], {
|
|
92
100
|
protectedScreens
|
|
93
101
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["StackRouter","useNavigationBuilder","NavigationRouteContext","React","SafeAreaView","useFilterScreenChildren","findNearestNotFoundRoute","findRouteNodeByPath","useNotFoundState","useContextKey","getResolvedLinking","routeNode","globalRouteNode","getSafeWindowPathname","initialPathname","lastIntendedPathname","registerProtectedRoutes","unregisterProtectedRoutes","useSortedScreens","getQualifiedRouteComponent","Screen","registerClearSlotStates","registerSetSlotState","Fragment","jsx","SLOT_STATIC_KEY","resolveInitialRouteFromLinking","contextKey","browserPath","linking","getStateFromPath","current","config","segments","split","filter","Boolean","i","length","routes","idx","index","focused","name","state","nameSegments","expected","slice","join","globalSlotState","Map","slotStateListeners","Set","getSlotState","slotName","get","setSlotState","delete","set","forEach","listener","clearAllSlotStates","clear","useSlotStateSubscription","forceUpdate","useReducer","x","useEffect","add","NavigatorContext","createContext","process","env","NODE_ENV","displayName","Navigator","initialRouteName","screenOptions","children","router","screens","otherSlot","protectedScreens","isCustomNavigator","sorted","console","warn","QualifiedNavigator","parentRoute","useContext","screenFromParent","params","screen","resolvedInitialRouteName","useMemo","hasScreen","some","s","props","resolved","navigation","descriptors","NavigationContent","id","descriptorsRef","useRef","value","Provider","useNavigatorContext","context","Error","useSlot","notFoundState","notFoundRouteNode","notFoundPath","originalPath","NotFoundComponent","route","renderedElement","key","render","cloneElement","Slot","memo","Slot2","QualifiedSlot","DefaultNavigator","style","flex","getScopedSlotKey","layoutContextKey","useNamedSlot","scopedKey","slotState","activeRouteKey","isIntercepted","activeRouteNode","Component","NamedSlot","slotContent"],"sources":["../../../src/views/Navigator.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["StackRouter","useNavigationBuilder","NavigationRouteContext","React","SafeAreaView","useFilterScreenChildren","useResolvedGuardedRedirects","findNearestNotFoundRoute","findRouteNodeByPath","useNotFoundState","useContextKey","getResolvedLinking","routeNode","globalRouteNode","getSafeWindowPathname","initialPathname","lastIntendedPathname","replace","registerProtectedRoutes","resolveProtectedHref","routeInfo","unregisterProtectedRoutes","useSortedScreens","getQualifiedRouteComponent","Screen","registerClearSlotStates","registerSetSlotState","Fragment","jsx","SLOT_STATIC_KEY","resolveInitialRouteFromLinking","contextKey","browserPath","linking","getStateFromPath","current","config","segments","split","filter","Boolean","i","length","routes","idx","index","focused","name","state","nameSegments","expected","slice","join","globalSlotState","Map","slotStateListeners","Set","getSlotState","slotName","get","setSlotState","delete","set","forEach","listener","clearAllSlotStates","clear","useSlotStateSubscription","forceUpdate","useReducer","x","useEffect","add","NavigatorContext","createContext","process","env","NODE_ENV","displayName","Navigator","initialRouteName","screenOptions","children","router","screens","otherSlot","protectedScreens","guardedRedirects","isCustomNavigator","resolvedGuardedRedirects","currentPathname","pathname","protectedHref","sorted","console","warn","QualifiedNavigator","parentRoute","useContext","screenFromParent","params","screen","resolvedInitialRouteName","useMemo","hasScreen","some","s","props","resolved","navigation","descriptors","NavigationContent","id","descriptorsRef","useRef","value","Provider","useNavigatorContext","context","Error","useSlot","notFoundState","notFoundRouteNode","notFoundPath","originalPath","NotFoundComponent","route","renderedElement","key","render","cloneElement","Slot","memo","Slot2","QualifiedSlot","DefaultNavigator","style","flex","getScopedSlotKey","layoutContextKey","useNamedSlot","scopedKey","slotState","activeRouteKey","isIntercepted","activeRouteNode","Component","NamedSlot","slotContent"],"sources":["../../../src/views/Navigator.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -3,12 +3,11 @@ import { StackRouter, useNavigationBuilder } from "@react-navigation/native";
|
|
|
3
3
|
import { NavigationRouteContext } from "@react-navigation/core";
|
|
4
4
|
import * as React from "react";
|
|
5
5
|
import { SafeAreaView } from "react-native-safe-area-context";
|
|
6
|
-
import { useFilterScreenChildren } from "../layouts/withLayoutContext.native.js";
|
|
6
|
+
import { useFilterScreenChildren, useResolvedGuardedRedirects } from "../layouts/withLayoutContext.native.js";
|
|
7
7
|
import { findNearestNotFoundRoute, findRouteNodeByPath, useNotFoundState } from "../notFoundState.native.js";
|
|
8
8
|
import { useContextKey } from "../router/Route.native.js";
|
|
9
9
|
import { getResolvedLinking } from "../router/linkingConfig.native.js";
|
|
10
|
-
import { routeNode as globalRouteNode, getSafeWindowPathname, initialPathname, lastIntendedPathname } from "../router/router.native.js";
|
|
11
|
-
import { registerProtectedRoutes, unregisterProtectedRoutes } from "../router/router.native.js";
|
|
10
|
+
import { routeNode as globalRouteNode, getSafeWindowPathname, initialPathname, lastIntendedPathname, replace, registerProtectedRoutes, resolveProtectedHref, routeInfo, unregisterProtectedRoutes } from "../router/router.native.js";
|
|
12
11
|
import { useSortedScreens, getQualifiedRouteComponent } from "../router/useScreens.native.js";
|
|
13
12
|
import { Screen } from "./Screen.native.js";
|
|
14
13
|
import { registerClearSlotStates, registerSetSlotState } from "../router/interceptRoutes.native.js";
|
|
@@ -92,18 +91,27 @@ function Navigator(param) {
|
|
|
92
91
|
var {
|
|
93
92
|
screens,
|
|
94
93
|
children: otherSlot,
|
|
95
|
-
protectedScreens
|
|
94
|
+
protectedScreens,
|
|
95
|
+
guardedRedirects
|
|
96
96
|
} = useFilterScreenChildren(children, {
|
|
97
97
|
isCustomNavigator: true,
|
|
98
98
|
contextKey
|
|
99
99
|
});
|
|
100
|
-
|
|
100
|
+
var resolvedGuardedRedirects = useResolvedGuardedRedirects(guardedRedirects);
|
|
101
|
+
registerProtectedRoutes(contextKey, resolvedGuardedRedirects);
|
|
102
|
+
var currentPathname = routeInfo === null || routeInfo === void 0 ? void 0 : routeInfo.pathname;
|
|
103
|
+
var protectedHref = currentPathname ? resolveProtectedHref(currentPathname) : currentPathname;
|
|
101
104
|
React.useEffect(function () {
|
|
102
|
-
registerProtectedRoutes(contextKey,
|
|
105
|
+
registerProtectedRoutes(contextKey, resolvedGuardedRedirects);
|
|
103
106
|
return function () {
|
|
104
107
|
unregisterProtectedRoutes(contextKey);
|
|
105
108
|
};
|
|
106
|
-
}, [contextKey,
|
|
109
|
+
}, [contextKey, resolvedGuardedRedirects]);
|
|
110
|
+
React.useEffect(function () {
|
|
111
|
+
if (currentPathname && protectedHref && protectedHref !== currentPathname) {
|
|
112
|
+
replace(protectedHref);
|
|
113
|
+
}
|
|
114
|
+
}, [currentPathname, protectedHref]);
|
|
107
115
|
var sorted = useSortedScreens(screens !== null && screens !== void 0 ? screens : [], {
|
|
108
116
|
protectedScreens
|
|
109
117
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["jsx","_jsx","Fragment","_Fragment","StackRouter","useNavigationBuilder","NavigationRouteContext","React","SafeAreaView","useFilterScreenChildren","findNearestNotFoundRoute","findRouteNodeByPath","useNotFoundState","useContextKey","getResolvedLinking","routeNode","globalRouteNode","getSafeWindowPathname","initialPathname","lastIntendedPathname","registerProtectedRoutes","unregisterProtectedRoutes","useSortedScreens","getQualifiedRouteComponent","Screen","registerClearSlotStates","registerSetSlotState","_type_of","obj","Symbol","constructor","SLOT_STATIC_KEY","resolveInitialRouteFromLinking","contextKey","browserPath","_current_index","_current_routes","_current_routes_idx","linking","getStateFromPath","current","config","segments","split","filter","Boolean","i","length","_current_index1","_current_routes1","routes","idx","index","focused","name","state","nameSegments","expected","slice","join","idx1","globalSlotState","Map","slotStateListeners","Set","getSlotState","slotName","get","setSlotState","delete","set","forEach","listener","clearAllSlotStates","clear","useSlotStateSubscription","forceUpdate","useReducer","x","useEffect","add","NavigatorContext","createContext","process","env","NODE_ENV","displayName","Navigator","param","initialRouteName","screenOptions","children","router","screens","otherSlot","protectedScreens","isCustomNavigator","sorted","console","warn","QualifiedNavigator","parentRoute","useContext","screenFromParent","params","screen","resolvedInitialRouteName","useMemo","_ref","hasScreen","some","s","_s_props","props","resolved","hasScreen1","navigation","descriptors","NavigationContent","id","descriptorsRef","useRef","value","Provider","useNavigatorContext","context","Error","useSlot","_descriptorsRef_current_current_key","notFoundState","notFoundRouteNode","notFoundPath","originalPath","NotFoundComponent","route","renderedElement","key","render","cloneElement","Slot","memo","Slot2","QualifiedSlot","DefaultNavigator","style","flex","getScopedSlotKey","layoutContextKey","useNamedSlot","scopedKey","slotState","activeRouteKey","isIntercepted"],"sources":["../../../src/views/Navigator.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["jsx","_jsx","Fragment","_Fragment","StackRouter","useNavigationBuilder","NavigationRouteContext","React","SafeAreaView","useFilterScreenChildren","useResolvedGuardedRedirects","findNearestNotFoundRoute","findRouteNodeByPath","useNotFoundState","useContextKey","getResolvedLinking","routeNode","globalRouteNode","getSafeWindowPathname","initialPathname","lastIntendedPathname","replace","registerProtectedRoutes","resolveProtectedHref","routeInfo","unregisterProtectedRoutes","useSortedScreens","getQualifiedRouteComponent","Screen","registerClearSlotStates","registerSetSlotState","_type_of","obj","Symbol","constructor","SLOT_STATIC_KEY","resolveInitialRouteFromLinking","contextKey","browserPath","_current_index","_current_routes","_current_routes_idx","linking","getStateFromPath","current","config","segments","split","filter","Boolean","i","length","_current_index1","_current_routes1","routes","idx","index","focused","name","state","nameSegments","expected","slice","join","idx1","globalSlotState","Map","slotStateListeners","Set","getSlotState","slotName","get","setSlotState","delete","set","forEach","listener","clearAllSlotStates","clear","useSlotStateSubscription","forceUpdate","useReducer","x","useEffect","add","NavigatorContext","createContext","process","env","NODE_ENV","displayName","Navigator","param","initialRouteName","screenOptions","children","router","screens","otherSlot","protectedScreens","guardedRedirects","isCustomNavigator","resolvedGuardedRedirects","currentPathname","pathname","protectedHref","sorted","console","warn","QualifiedNavigator","parentRoute","useContext","screenFromParent","params","screen","resolvedInitialRouteName","useMemo","_ref","hasScreen","some","s","_s_props","props","resolved","hasScreen1","navigation","descriptors","NavigationContent","id","descriptorsRef","useRef","value","Provider","useNavigatorContext","context","Error","useSlot","_descriptorsRef_current_current_key","notFoundState","notFoundRouteNode","notFoundPath","originalPath","NotFoundComponent","route","renderedElement","key","render","cloneElement","Slot","memo","Slot2","QualifiedSlot","DefaultNavigator","style","flex","getScopedSlotKey","layoutContextKey","useNamedSlot","scopedKey","slotState","activeRouteKey","isIntercepted","activeRouteNode","Component"],"sources":["../../../src/views/Navigator.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["createNavigatorFactory","isValidElement","Group","Protected","isProtectedElement","child","Boolean","type","props"],"sources":["../../../src/views/Protected.tsx"],"sourcesContent":[null],"mappings":"AAAA,SAASA,sBAAA,QAA8B;AACvC,SAIEC,cAAA,QACK;
|
|
1
|
+
{"version":3,"names":["createNavigatorFactory","isValidElement","Group","Protected","isProtectedElement","child","Boolean","type","props"],"sources":["../../../src/views/Protected.tsx"],"sourcesContent":[null],"mappings":"AAAA,SAASA,sBAAA,QAA8B;AACvC,SAIEC,cAAA,QACK;AAKP,MAAM;EAAEC;AAAM,IAAIF,sBAAA,CAAuB,CAAC,CAAQ,EAAE;AAmC7C,MAAMG,SAAA,GAAYD,KAAA;AAQlB,SAASE,mBACdC,KAAA,EACuC;EACvC,OAAOC,OAAA,CACLL,cAAA,CAAeI,KAAK,KACpBA,KAAA,CAAME,IAAA,KAASL,KAAA,IACfG,KAAA,CAAMG,KAAA,IACN,OAAOH,KAAA,CAAMG,KAAA,KAAU,YACvB,WAAWH,KAAA,CAAMG,KACnB;AACF","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["createNavigatorFactory","isValidElement","_type_of","obj","Symbol","constructor","Group","Protected","isProtectedElement","child","Boolean","type","props"],"sources":["../../../src/views/Protected.tsx"],"sourcesContent":[null],"mappings":"AAAA,SAASA,sBAAA,QAA8B;AACvC,SAAAC,cAAA;AAAA,SAIEC,SAAAC,GAAA;EAAA,uBACK;;
|
|
1
|
+
{"version":3,"names":["createNavigatorFactory","isValidElement","_type_of","obj","Symbol","constructor","Group","Protected","isProtectedElement","child","Boolean","type","props"],"sources":["../../../src/views/Protected.tsx"],"sourcesContent":[null],"mappings":"AAAA,SAASA,sBAAA,QAA8B;AACvC,SAAAC,cAAA;AAAA,SAIEC,SAAAC,GAAA;EAAA,uBACK;;EAKP,OAAQA,GAAA,IAAM,OAAIC,MAAA,gBAAkC,IAAAD,GAAA,CAAAE,WAAA,KAAAD,MAAA,qBAAAD,GAAA;AAmC7C;AAQA;EAAAG;AAAS,IAAAN,sBAEyB;AACvC,IAAAO,SAAO,GAAAD,KAAA;AAAA,SACLE,kBAAoBA,CAAAC,KACpB,EAAM;EAIR,OAAAC,OAAA,gBAAAT,cAAA,CAAAQ,KAAA,KAAAA,KAAA,CAAAE,IAAA,KAAAL,KAAA,IAAAG,KAAA,CAAAG,KAAA,IAAAV,QAAA,CAAAO,KAAA,CAAAG,KAAA,6BAAAH,KAAA,CAAAG,KAAA;AACF","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sources":[],"sourcesContent":[],"mappings":"","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sources":[],"sourcesContent":[],"mappings":"","ignoreList":[]}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import path from "node:path";
|
|
2
2
|
import { Readable } from "node:stream";
|
|
3
|
+
import { TLSSocket } from "node:tls";
|
|
3
4
|
import { debounce } from "perfect-debounce";
|
|
4
5
|
import colors from "picocolors";
|
|
5
6
|
import { createServerModuleRunner, normalizePath } from "vite";
|
|
@@ -517,10 +518,35 @@ ${stack}
|
|
|
517
518
|
});
|
|
518
519
|
server.middlewares.use(async (req, res, next) => {
|
|
519
520
|
res.setHeader("Cache-Control", "no-store");
|
|
521
|
+
const abortController = new AbortController();
|
|
522
|
+
const cleanupAbortListeners = () => {
|
|
523
|
+
req.removeListener("aborted", abortRequest);
|
|
524
|
+
req.removeListener("close", abortIncompleteRequest);
|
|
525
|
+
res.removeListener("close", abortIncompleteResponse);
|
|
526
|
+
res.removeListener("finish", cleanupAbortListeners);
|
|
527
|
+
};
|
|
528
|
+
const abortRequest = () => {
|
|
529
|
+
cleanupAbortListeners();
|
|
530
|
+
abortController.abort();
|
|
531
|
+
};
|
|
532
|
+
const abortIncompleteRequest = () => {
|
|
533
|
+
if (req.aborted || !req.complete) abortRequest();
|
|
534
|
+
};
|
|
535
|
+
const abortIncompleteResponse = () => {
|
|
536
|
+
if (!res.writableFinished) {
|
|
537
|
+
abortRequest();
|
|
538
|
+
return;
|
|
539
|
+
}
|
|
540
|
+
cleanupAbortListeners();
|
|
541
|
+
};
|
|
542
|
+
req.on("aborted", abortRequest);
|
|
543
|
+
req.on("close", abortIncompleteRequest);
|
|
544
|
+
res.on("close", abortIncompleteResponse);
|
|
545
|
+
res.on("finish", cleanupAbortListeners);
|
|
520
546
|
try {
|
|
521
547
|
const redirects = options.web?.redirects;
|
|
522
548
|
if (redirects) {
|
|
523
|
-
const url2 = new URL(req.url || "",
|
|
549
|
+
const url2 = new URL(req.url || "", "http://127.0.0.1");
|
|
524
550
|
for (const redirect of redirects) {
|
|
525
551
|
const regexStr = `^${redirect.source.replace(/:\w+/g, "([^/]+)")}$`;
|
|
526
552
|
const match = url2.pathname.match(new RegExp(regexStr));
|
|
@@ -543,8 +569,9 @@ ${stack}
|
|
|
543
569
|
}
|
|
544
570
|
}
|
|
545
571
|
}
|
|
546
|
-
const reply = await handleRequest.handler(convertIncomingMessageToRequest(req));
|
|
572
|
+
const reply = await handleRequest.handler(convertIncomingMessageToRequest(req, abortController.signal));
|
|
547
573
|
if (!reply) {
|
|
574
|
+
cleanupAbortListeners();
|
|
548
575
|
return next();
|
|
549
576
|
}
|
|
550
577
|
if (typeof reply !== "string" && isResponse(reply)) {
|
|
@@ -580,7 +607,6 @@ ${stack}
|
|
|
580
607
|
console.error(`No location provided to redirected status reply`, reply);
|
|
581
608
|
}
|
|
582
609
|
res.statusCode = reply.status;
|
|
583
|
-
res.statusMessage = reply.statusText;
|
|
584
610
|
if (reply.body) {
|
|
585
611
|
if (reply.body.locked) {
|
|
586
612
|
console.warn(`Body is locked??`, req.url);
|
|
@@ -588,7 +614,14 @@ ${stack}
|
|
|
588
614
|
return;
|
|
589
615
|
}
|
|
590
616
|
try {
|
|
591
|
-
Readable.fromWeb(reply.body)
|
|
617
|
+
const body = Readable.fromWeb(reply.body);
|
|
618
|
+
body.on("error", error => {
|
|
619
|
+
if (!abortController.signal.aborted) {
|
|
620
|
+
console.warn("Error streaming reply body to response:", error);
|
|
621
|
+
}
|
|
622
|
+
if (!res.destroyed) res.destroy();
|
|
623
|
+
});
|
|
624
|
+
body.pipe(res);
|
|
592
625
|
} catch (err) {
|
|
593
626
|
console.warn("Error piping reply body to response:", err);
|
|
594
627
|
res.end();
|
|
@@ -608,6 +641,7 @@ ${stack}
|
|
|
608
641
|
res.end();
|
|
609
642
|
return;
|
|
610
643
|
} catch (error) {
|
|
644
|
+
cleanupAbortListeners();
|
|
611
645
|
console.error(`[one] routing error ${req.url}: ${error}`);
|
|
612
646
|
next(error);
|
|
613
647
|
}
|
|
@@ -617,25 +651,31 @@ ${stack}
|
|
|
617
651
|
}
|
|
618
652
|
};
|
|
619
653
|
}
|
|
620
|
-
const convertIncomingMessageToRequest = req => {
|
|
654
|
+
const convertIncomingMessageToRequest = (req, signal) => {
|
|
621
655
|
if (!req.originalUrl) {
|
|
622
656
|
throw new Error(`Can't convert: originalUrl is missing`);
|
|
623
657
|
}
|
|
624
|
-
const
|
|
658
|
+
const protocol = req.socket instanceof TLSSocket && req.socket.encrypted ? "https" : "http";
|
|
659
|
+
const host = `${req.headers["x-forwarded-host"] || req.headers.host || req.headers[":authority"] || "127.0.0.1"}`;
|
|
660
|
+
const urlBase = `${protocol}://${host}`;
|
|
625
661
|
const urlString = req.originalUrl;
|
|
626
662
|
const url2 = new URL(urlString, urlBase);
|
|
627
663
|
const headers = new Headers();
|
|
628
664
|
for (const key in req.headers) {
|
|
629
|
-
if (req.headers[key]) {
|
|
665
|
+
if (!key.startsWith(":") && req.headers[key]) {
|
|
630
666
|
headers.append(key, req.headers[key]);
|
|
631
667
|
}
|
|
632
668
|
}
|
|
669
|
+
if (!headers.has("host")) {
|
|
670
|
+
headers.set("host", host);
|
|
671
|
+
}
|
|
633
672
|
const hasBody = ["POST", "PUT", "PATCH", "DELETE"].includes(req.method || "");
|
|
634
673
|
const body = hasBody ? Readable.toWeb(req) : null;
|
|
635
674
|
return new Request(url2, {
|
|
636
675
|
method: req.method,
|
|
637
676
|
headers,
|
|
638
677
|
body,
|
|
678
|
+
signal,
|
|
639
679
|
// Required for streaming bodies in Node's experimental fetch:
|
|
640
680
|
duplex: "half"
|
|
641
681
|
});
|