one 1.16.2 → 1.16.3
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/views/Navigator.cjs +26 -17
- package/dist/cjs/views/Navigator.native.js +33 -37
- package/dist/cjs/views/Navigator.native.js.map +1 -1
- package/dist/esm/views/Navigator.mjs +26 -17
- package/dist/esm/views/Navigator.mjs.map +1 -1
- package/dist/esm/views/Navigator.native.js +33 -37
- package/dist/esm/views/Navigator.native.js.map +1 -1
- package/package.json +9 -9
- package/src/views/Navigator.tsx +67 -47
- package/types/views/Navigator.d.ts.map +1 -1
|
@@ -54,7 +54,7 @@ var import_react_native_safe_area_context = require("react-native-safe-area-cont
|
|
|
54
54
|
var import_withLayoutContext = require("../layouts/withLayoutContext.cjs");
|
|
55
55
|
var import_notFoundState = require("../notFoundState.cjs");
|
|
56
56
|
var import_Route = require("../router/Route.cjs");
|
|
57
|
-
var
|
|
57
|
+
var import_linkingConfig = require("../router/linkingConfig.cjs");
|
|
58
58
|
var import_router = require("../router/router.cjs");
|
|
59
59
|
var import_router2 = require("../router/router.cjs");
|
|
60
60
|
var import_useScreens = require("../router/useScreens.cjs");
|
|
@@ -62,6 +62,27 @@ var import_Screen = require("./Screen.cjs");
|
|
|
62
62
|
var import_interceptRoutes = require("../router/interceptRoutes.cjs");
|
|
63
63
|
var import_jsx_runtime = require("react/jsx-runtime");
|
|
64
64
|
const SLOT_STATIC_KEY = "one-slot-static-key";
|
|
65
|
+
function resolveInitialRouteFromLinking(contextKey, browserPath) {
|
|
66
|
+
const linking = (0, import_linkingConfig.getLinking)();
|
|
67
|
+
if (!linking?.getStateFromPath) return void 0;
|
|
68
|
+
let current = linking.getStateFromPath(browserPath, linking.config);
|
|
69
|
+
const segments = contextKey.split("/").filter(Boolean);
|
|
70
|
+
let i = 0;
|
|
71
|
+
while (i < segments.length) {
|
|
72
|
+
if (!current?.routes?.length) return void 0;
|
|
73
|
+
const idx2 = current.index ?? current.routes.length - 1;
|
|
74
|
+
const focused = current.routes[idx2];
|
|
75
|
+
if (!focused?.name || !focused.state) return void 0;
|
|
76
|
+
const nameSegments = focused.name.split("/").filter(Boolean);
|
|
77
|
+
const expected = segments.slice(i, i + nameSegments.length).join("/");
|
|
78
|
+
if (focused.name !== expected) return void 0;
|
|
79
|
+
current = focused.state;
|
|
80
|
+
i += nameSegments.length;
|
|
81
|
+
}
|
|
82
|
+
if (!current?.routes?.length) return void 0;
|
|
83
|
+
const idx = current.index ?? current.routes.length - 1;
|
|
84
|
+
return current.routes[idx]?.name;
|
|
85
|
+
}
|
|
65
86
|
const globalSlotState = /* @__PURE__ */new Map();
|
|
66
87
|
const slotStateListeners = /* @__PURE__ */new Set();
|
|
67
88
|
function getSlotState(slotName) {
|
|
@@ -144,22 +165,10 @@ function QualifiedNavigator({
|
|
|
144
165
|
if (initialRouteName) return initialRouteName;
|
|
145
166
|
const browserPath = import_router.initialPathname ?? (typeof window !== "undefined" ? window.location.pathname : void 0);
|
|
146
167
|
if (!browserPath) return void 0;
|
|
147
|
-
const
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
if (!name) continue;
|
|
152
|
-
const fullPattern = layoutUrlPrefix ? `${layoutUrlPrefix}/${name}` : name;
|
|
153
|
-
const match = (0, import_matchers.matchRoutePattern)(fullPattern, browserPath);
|
|
154
|
-
if (!match) continue;
|
|
155
|
-
if (!best || match.specificity > best.specificity) {
|
|
156
|
-
best = {
|
|
157
|
-
name,
|
|
158
|
-
specificity: match.specificity
|
|
159
|
-
};
|
|
160
|
-
}
|
|
161
|
-
}
|
|
162
|
-
return best?.name;
|
|
168
|
+
const resolved = resolveInitialRouteFromLinking(contextKey, browserPath);
|
|
169
|
+
if (!resolved) return void 0;
|
|
170
|
+
const hasScreen = screens.some(s => s?.props?.name === resolved);
|
|
171
|
+
return hasScreen ? resolved : void 0;
|
|
163
172
|
}, [initialRouteName, screens, contextKey]);
|
|
164
173
|
const {
|
|
165
174
|
state,
|
|
@@ -57,13 +57,38 @@ var import_react_native_safe_area_context = require("react-native-safe-area-cont
|
|
|
57
57
|
var import_withLayoutContext = require("../layouts/withLayoutContext.native.js");
|
|
58
58
|
var import_notFoundState = require("../notFoundState.native.js");
|
|
59
59
|
var import_Route = require("../router/Route.native.js");
|
|
60
|
-
var
|
|
60
|
+
var import_linkingConfig = require("../router/linkingConfig.native.js");
|
|
61
61
|
var import_router = require("../router/router.native.js");
|
|
62
62
|
var import_router2 = require("../router/router.native.js");
|
|
63
63
|
var import_useScreens = require("../router/useScreens.native.js");
|
|
64
64
|
var import_Screen = require("./Screen.native.js");
|
|
65
65
|
var import_interceptRoutes = require("../router/interceptRoutes.native.js");
|
|
66
66
|
var SLOT_STATIC_KEY = "one-slot-static-key";
|
|
67
|
+
function resolveInitialRouteFromLinking(contextKey, browserPath) {
|
|
68
|
+
var _current_index;
|
|
69
|
+
var _current_routes, _current_routes_idx;
|
|
70
|
+
var linking = (0, import_linkingConfig.getLinking)();
|
|
71
|
+
if (!(linking === null || linking === void 0 ? void 0 : linking.getStateFromPath)) return void 0;
|
|
72
|
+
var current = linking.getStateFromPath(browserPath, linking.config);
|
|
73
|
+
var segments = contextKey.split("/").filter(Boolean);
|
|
74
|
+
var i = 0;
|
|
75
|
+
while (i < segments.length) {
|
|
76
|
+
var _current_index1;
|
|
77
|
+
var _current_routes1;
|
|
78
|
+
if (!(current === null || current === void 0 ? void 0 : (_current_routes1 = current.routes) === null || _current_routes1 === void 0 ? void 0 : _current_routes1.length)) return void 0;
|
|
79
|
+
var idx = (_current_index1 = current.index) !== null && _current_index1 !== void 0 ? _current_index1 : current.routes.length - 1;
|
|
80
|
+
var focused = current.routes[idx];
|
|
81
|
+
if (!(focused === null || focused === void 0 ? void 0 : focused.name) || !focused.state) return void 0;
|
|
82
|
+
var nameSegments = focused.name.split("/").filter(Boolean);
|
|
83
|
+
var expected = segments.slice(i, i + nameSegments.length).join("/");
|
|
84
|
+
if (focused.name !== expected) return void 0;
|
|
85
|
+
current = focused.state;
|
|
86
|
+
i += nameSegments.length;
|
|
87
|
+
}
|
|
88
|
+
if (!(current === null || current === void 0 ? void 0 : (_current_routes = current.routes) === null || _current_routes === void 0 ? void 0 : _current_routes.length)) return void 0;
|
|
89
|
+
var idx1 = (_current_index = current.index) !== null && _current_index !== void 0 ? _current_index : current.routes.length - 1;
|
|
90
|
+
return (_current_routes_idx = current.routes[idx1]) === null || _current_routes_idx === void 0 ? void 0 : _current_routes_idx.name;
|
|
91
|
+
}
|
|
67
92
|
var globalSlotState = /* @__PURE__ */new Map();
|
|
68
93
|
var slotStateListeners = /* @__PURE__ */new Set();
|
|
69
94
|
function getSlotState(slotName) {
|
|
@@ -154,42 +179,13 @@ function QualifiedNavigator(param) {
|
|
|
154
179
|
if (initialRouteName) return initialRouteName;
|
|
155
180
|
var browserPath = import_router.initialPathname !== null && import_router.initialPathname !== void 0 ? import_router.initialPathname : typeof window !== "undefined" ? window.location.pathname : void 0;
|
|
156
181
|
if (!browserPath) return void 0;
|
|
157
|
-
var
|
|
158
|
-
|
|
159
|
-
var
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
var screen = _step.value;
|
|
165
|
-
var _screen_props;
|
|
166
|
-
var name = screen === null || screen === void 0 ? void 0 : (_screen_props = screen.props) === null || _screen_props === void 0 ? void 0 : _screen_props.name;
|
|
167
|
-
if (!name) continue;
|
|
168
|
-
var fullPattern = layoutUrlPrefix ? `${layoutUrlPrefix}/${name}` : name;
|
|
169
|
-
var match = (0, import_matchers.matchRoutePattern)(fullPattern, browserPath);
|
|
170
|
-
if (!match) continue;
|
|
171
|
-
if (!best || match.specificity > best.specificity) {
|
|
172
|
-
best = {
|
|
173
|
-
name,
|
|
174
|
-
specificity: match.specificity
|
|
175
|
-
};
|
|
176
|
-
}
|
|
177
|
-
}
|
|
178
|
-
} catch (err) {
|
|
179
|
-
_didIteratorError = true;
|
|
180
|
-
_iteratorError = err;
|
|
181
|
-
} finally {
|
|
182
|
-
try {
|
|
183
|
-
if (!_iteratorNormalCompletion && _iterator.return != null) {
|
|
184
|
-
_iterator.return();
|
|
185
|
-
}
|
|
186
|
-
} finally {
|
|
187
|
-
if (_didIteratorError) {
|
|
188
|
-
throw _iteratorError;
|
|
189
|
-
}
|
|
190
|
-
}
|
|
191
|
-
}
|
|
192
|
-
return best === null || best === void 0 ? void 0 : best.name;
|
|
182
|
+
var resolved = resolveInitialRouteFromLinking(contextKey, browserPath);
|
|
183
|
+
if (!resolved) return void 0;
|
|
184
|
+
var hasScreen = screens.some(function (s) {
|
|
185
|
+
var _s_props;
|
|
186
|
+
return (s === null || s === void 0 ? void 0 : (_s_props = s.props) === null || _s_props === void 0 ? void 0 : _s_props.name) === resolved;
|
|
187
|
+
});
|
|
188
|
+
return hasScreen ? resolved : void 0;
|
|
193
189
|
}, [initialRouteName, screens, contextKey]);
|
|
194
190
|
var {
|
|
195
191
|
state,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","Navigator_exports","__export","DefaultNavigator","NamedSlot","Navigator","NavigatorContext","QualifiedSlot","Slot","clearAllSlotStates","getScopedSlotKey","getSlotState","setSlotState","useNamedSlot","useNavigatorContext","useSlot","module","exports","import_jsx_runtime","require","import_native","React","__toESM","import_react_native_safe_area_context","import_withLayoutContext","import_notFoundState","import_Route","import_matchers","import_router","import_router2","import_useScreens","import_Screen","import_interceptRoutes","SLOT_STATIC_KEY","globalSlotState","Map","slotStateListeners","Set","slotName","get","state","delete","set","forEach","listener","clear","registerClearSlotStates","registerSetSlotState","useSlotStateSubscription","forceUpdate","useReducer","x","useEffect","add","createContext","process","env","NODE_ENV","displayName","param","initialRouteName","screenOptions","children","router","contextKey","useContextKey","screens","otherSlot","protectedScreens","useFilterScreenChildren","isCustomNavigator","registerProtectedRoutes","unregisterProtectedRoutes","sorted","useSortedScreens","length","console","warn","jsx","QualifiedNavigator","StackRouter","resolvedInitialRouteName","useMemo","browserPath","initialPathname","window","location","pathname","layoutUrlPrefix","stripGroupSegmentsFromPath","replace","best","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","Symbol","iterator","_step","next","done","screen","_screen_props","name","props","fullPattern","match","matchRoutePattern","specificity","err","return","navigation","descriptors","NavigationContent","useNavigationBuilder","id","descriptorsRef","useRef","current","Provider","context","useContext","Error","_ref","_descriptorsRef_current_current_key","notFoundState","useNotFoundState","notFoundRouteNode","findRouteNodeByPath","notFoundPath","routeNode","findNearestNotFoundRoute","originalPath","NotFoundComponent","getQualifiedRouteComponent","route","params","routes","index","renderedElement","key","render","cloneElement","memo","Slot2","SafeAreaView","style","flex"],"sources":["../../../src/views/Navigator.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","Navigator_exports","__export","DefaultNavigator","NamedSlot","Navigator","NavigatorContext","QualifiedSlot","Slot","clearAllSlotStates","getScopedSlotKey","getSlotState","setSlotState","useNamedSlot","useNavigatorContext","useSlot","module","exports","import_jsx_runtime","require","import_native","React","__toESM","import_react_native_safe_area_context","import_withLayoutContext","import_notFoundState","import_Route","import_linkingConfig","import_router","import_router2","import_useScreens","import_Screen","import_interceptRoutes","SLOT_STATIC_KEY","resolveInitialRouteFromLinking","contextKey","browserPath","_current_index","_current_routes","_current_routes_idx","linking","getLinking","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","slotName","get","delete","set","forEach","listener","clear","registerClearSlotStates","registerSetSlotState","useSlotStateSubscription","forceUpdate","useReducer","x","useEffect","add","createContext","process","env","NODE_ENV","displayName","param","initialRouteName","screenOptions","children","router","useContextKey","screens","otherSlot","protectedScreens","useFilterScreenChildren","isCustomNavigator","registerProtectedRoutes","unregisterProtectedRoutes","sorted","useSortedScreens","console","warn","jsx","QualifiedNavigator","StackRouter","resolvedInitialRouteName","useMemo","initialPathname","window","location","pathname","resolved","hasScreen","some","s","_s_props","props","navigation","descriptors","NavigationContent","useNavigationBuilder","id","descriptorsRef","useRef","Provider","context","useContext","Error","_ref","_descriptorsRef_current_current_key","notFoundState","useNotFoundState","notFoundRouteNode","findRouteNodeByPath","notFoundPath","routeNode","findNearestNotFoundRoute","originalPath","NotFoundComponent","getQualifiedRouteComponent","route","params","renderedElement","key","render","cloneElement","memo","Slot2","SafeAreaView","style","flex","Screen","layoutContextKey","scopedKey"],"sources":["../../../src/views/Navigator.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -4,7 +4,7 @@ import { SafeAreaView } from "react-native-safe-area-context";
|
|
|
4
4
|
import { useFilterScreenChildren } from "../layouts/withLayoutContext.mjs";
|
|
5
5
|
import { findNearestNotFoundRoute, findRouteNodeByPath, useNotFoundState } from "../notFoundState.mjs";
|
|
6
6
|
import { useContextKey } from "../router/Route.mjs";
|
|
7
|
-
import {
|
|
7
|
+
import { getLinking } from "../router/linkingConfig.mjs";
|
|
8
8
|
import { routeNode as globalRouteNode, initialPathname } from "../router/router.mjs";
|
|
9
9
|
import { registerProtectedRoutes, unregisterProtectedRoutes } from "../router/router.mjs";
|
|
10
10
|
import { useSortedScreens, getQualifiedRouteComponent } from "../router/useScreens.mjs";
|
|
@@ -12,6 +12,27 @@ import { Screen } from "./Screen.mjs";
|
|
|
12
12
|
import { registerClearSlotStates, registerSetSlotState } from "../router/interceptRoutes.mjs";
|
|
13
13
|
import { Fragment, jsx } from "react/jsx-runtime";
|
|
14
14
|
const SLOT_STATIC_KEY = "one-slot-static-key";
|
|
15
|
+
function resolveInitialRouteFromLinking(contextKey, browserPath) {
|
|
16
|
+
const linking = getLinking();
|
|
17
|
+
if (!linking?.getStateFromPath) return void 0;
|
|
18
|
+
let current = linking.getStateFromPath(browserPath, linking.config);
|
|
19
|
+
const segments = contextKey.split("/").filter(Boolean);
|
|
20
|
+
let i = 0;
|
|
21
|
+
while (i < segments.length) {
|
|
22
|
+
if (!current?.routes?.length) return void 0;
|
|
23
|
+
const idx2 = current.index ?? current.routes.length - 1;
|
|
24
|
+
const focused = current.routes[idx2];
|
|
25
|
+
if (!focused?.name || !focused.state) return void 0;
|
|
26
|
+
const nameSegments = focused.name.split("/").filter(Boolean);
|
|
27
|
+
const expected = segments.slice(i, i + nameSegments.length).join("/");
|
|
28
|
+
if (focused.name !== expected) return void 0;
|
|
29
|
+
current = focused.state;
|
|
30
|
+
i += nameSegments.length;
|
|
31
|
+
}
|
|
32
|
+
if (!current?.routes?.length) return void 0;
|
|
33
|
+
const idx = current.index ?? current.routes.length - 1;
|
|
34
|
+
return current.routes[idx]?.name;
|
|
35
|
+
}
|
|
15
36
|
const globalSlotState = /* @__PURE__ */new Map();
|
|
16
37
|
const slotStateListeners = /* @__PURE__ */new Set();
|
|
17
38
|
function getSlotState(slotName) {
|
|
@@ -94,22 +115,10 @@ function QualifiedNavigator({
|
|
|
94
115
|
if (initialRouteName) return initialRouteName;
|
|
95
116
|
const browserPath = initialPathname ?? (typeof window !== "undefined" ? window.location.pathname : void 0);
|
|
96
117
|
if (!browserPath) return void 0;
|
|
97
|
-
const
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
if (!name) continue;
|
|
102
|
-
const fullPattern = layoutUrlPrefix ? `${layoutUrlPrefix}/${name}` : name;
|
|
103
|
-
const match = matchRoutePattern(fullPattern, browserPath);
|
|
104
|
-
if (!match) continue;
|
|
105
|
-
if (!best || match.specificity > best.specificity) {
|
|
106
|
-
best = {
|
|
107
|
-
name,
|
|
108
|
-
specificity: match.specificity
|
|
109
|
-
};
|
|
110
|
-
}
|
|
111
|
-
}
|
|
112
|
-
return best?.name;
|
|
118
|
+
const resolved = resolveInitialRouteFromLinking(contextKey, browserPath);
|
|
119
|
+
if (!resolved) return void 0;
|
|
120
|
+
const hasScreen = screens.some(s => s?.props?.name === resolved);
|
|
121
|
+
return hasScreen ? resolved : void 0;
|
|
113
122
|
}, [initialRouteName, screens, contextKey]);
|
|
114
123
|
const {
|
|
115
124
|
state,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["StackRouter","useNavigationBuilder","React","SafeAreaView","useFilterScreenChildren","findNearestNotFoundRoute","findRouteNodeByPath","useNotFoundState","useContextKey","
|
|
1
|
+
{"version":3,"names":["StackRouter","useNavigationBuilder","React","SafeAreaView","useFilterScreenChildren","findNearestNotFoundRoute","findRouteNodeByPath","useNotFoundState","useContextKey","getLinking","routeNode","globalRouteNode","initialPathname","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","idx2","index","focused","name","state","nameSegments","expected","slice","join","idx","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","resolvedInitialRouteName","useMemo","window","location","pathname","resolved","hasScreen","some","s","props","navigation","descriptors","NavigationContent","id","descriptorsRef","useRef","value","Provider","useNavigatorContext","context","useContext","Error","useSlot","notFoundState","notFoundRouteNode","notFoundPath","originalPath","NotFoundComponent","route","params","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":[]}
|
|
@@ -5,13 +5,38 @@ import { SafeAreaView } from "react-native-safe-area-context";
|
|
|
5
5
|
import { useFilterScreenChildren } from "../layouts/withLayoutContext.native.js";
|
|
6
6
|
import { findNearestNotFoundRoute, findRouteNodeByPath, useNotFoundState } from "../notFoundState.native.js";
|
|
7
7
|
import { useContextKey } from "../router/Route.native.js";
|
|
8
|
-
import {
|
|
8
|
+
import { getLinking } from "../router/linkingConfig.native.js";
|
|
9
9
|
import { routeNode as globalRouteNode, initialPathname } from "../router/router.native.js";
|
|
10
10
|
import { registerProtectedRoutes, unregisterProtectedRoutes } from "../router/router.native.js";
|
|
11
11
|
import { useSortedScreens, getQualifiedRouteComponent } from "../router/useScreens.native.js";
|
|
12
12
|
import { Screen } from "./Screen.native.js";
|
|
13
13
|
import { registerClearSlotStates, registerSetSlotState } from "../router/interceptRoutes.native.js";
|
|
14
14
|
var SLOT_STATIC_KEY = "one-slot-static-key";
|
|
15
|
+
function resolveInitialRouteFromLinking(contextKey, browserPath) {
|
|
16
|
+
var _current_index;
|
|
17
|
+
var _current_routes, _current_routes_idx;
|
|
18
|
+
var linking = getLinking();
|
|
19
|
+
if (!(linking === null || linking === void 0 ? void 0 : linking.getStateFromPath)) return void 0;
|
|
20
|
+
var current = linking.getStateFromPath(browserPath, linking.config);
|
|
21
|
+
var segments = contextKey.split("/").filter(Boolean);
|
|
22
|
+
var i = 0;
|
|
23
|
+
while (i < segments.length) {
|
|
24
|
+
var _current_index1;
|
|
25
|
+
var _current_routes1;
|
|
26
|
+
if (!(current === null || current === void 0 ? void 0 : (_current_routes1 = current.routes) === null || _current_routes1 === void 0 ? void 0 : _current_routes1.length)) return void 0;
|
|
27
|
+
var idx = (_current_index1 = current.index) !== null && _current_index1 !== void 0 ? _current_index1 : current.routes.length - 1;
|
|
28
|
+
var focused = current.routes[idx];
|
|
29
|
+
if (!(focused === null || focused === void 0 ? void 0 : focused.name) || !focused.state) return void 0;
|
|
30
|
+
var nameSegments = focused.name.split("/").filter(Boolean);
|
|
31
|
+
var expected = segments.slice(i, i + nameSegments.length).join("/");
|
|
32
|
+
if (focused.name !== expected) return void 0;
|
|
33
|
+
current = focused.state;
|
|
34
|
+
i += nameSegments.length;
|
|
35
|
+
}
|
|
36
|
+
if (!(current === null || current === void 0 ? void 0 : (_current_routes = current.routes) === null || _current_routes === void 0 ? void 0 : _current_routes.length)) return void 0;
|
|
37
|
+
var idx1 = (_current_index = current.index) !== null && _current_index !== void 0 ? _current_index : current.routes.length - 1;
|
|
38
|
+
return (_current_routes_idx = current.routes[idx1]) === null || _current_routes_idx === void 0 ? void 0 : _current_routes_idx.name;
|
|
39
|
+
}
|
|
15
40
|
var globalSlotState = /* @__PURE__ */new Map();
|
|
16
41
|
var slotStateListeners = /* @__PURE__ */new Set();
|
|
17
42
|
function getSlotState(slotName) {
|
|
@@ -102,42 +127,13 @@ function QualifiedNavigator(param) {
|
|
|
102
127
|
if (initialRouteName) return initialRouteName;
|
|
103
128
|
var browserPath = initialPathname !== null && initialPathname !== void 0 ? initialPathname : typeof window !== "undefined" ? window.location.pathname : void 0;
|
|
104
129
|
if (!browserPath) return void 0;
|
|
105
|
-
var
|
|
106
|
-
|
|
107
|
-
var
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
var screen = _step.value;
|
|
113
|
-
var _screen_props;
|
|
114
|
-
var name = screen === null || screen === void 0 ? void 0 : (_screen_props = screen.props) === null || _screen_props === void 0 ? void 0 : _screen_props.name;
|
|
115
|
-
if (!name) continue;
|
|
116
|
-
var fullPattern = layoutUrlPrefix ? `${layoutUrlPrefix}/${name}` : name;
|
|
117
|
-
var match = matchRoutePattern(fullPattern, browserPath);
|
|
118
|
-
if (!match) continue;
|
|
119
|
-
if (!best || match.specificity > best.specificity) {
|
|
120
|
-
best = {
|
|
121
|
-
name,
|
|
122
|
-
specificity: match.specificity
|
|
123
|
-
};
|
|
124
|
-
}
|
|
125
|
-
}
|
|
126
|
-
} catch (err) {
|
|
127
|
-
_didIteratorError = true;
|
|
128
|
-
_iteratorError = err;
|
|
129
|
-
} finally {
|
|
130
|
-
try {
|
|
131
|
-
if (!_iteratorNormalCompletion && _iterator.return != null) {
|
|
132
|
-
_iterator.return();
|
|
133
|
-
}
|
|
134
|
-
} finally {
|
|
135
|
-
if (_didIteratorError) {
|
|
136
|
-
throw _iteratorError;
|
|
137
|
-
}
|
|
138
|
-
}
|
|
139
|
-
}
|
|
140
|
-
return best === null || best === void 0 ? void 0 : best.name;
|
|
130
|
+
var resolved = resolveInitialRouteFromLinking(contextKey, browserPath);
|
|
131
|
+
if (!resolved) return void 0;
|
|
132
|
+
var hasScreen = screens.some(function (s) {
|
|
133
|
+
var _s_props;
|
|
134
|
+
return (s === null || s === void 0 ? void 0 : (_s_props = s.props) === null || _s_props === void 0 ? void 0 : _s_props.name) === resolved;
|
|
135
|
+
});
|
|
136
|
+
return hasScreen ? resolved : void 0;
|
|
141
137
|
}, [initialRouteName, screens, contextKey]);
|
|
142
138
|
var {
|
|
143
139
|
state,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["jsx","_jsx","Fragment","_Fragment","StackRouter","useNavigationBuilder","React","SafeAreaView","useFilterScreenChildren","findNearestNotFoundRoute","findRouteNodeByPath","useNotFoundState","useContextKey","
|
|
1
|
+
{"version":3,"names":["jsx","_jsx","Fragment","_Fragment","StackRouter","useNavigationBuilder","React","SafeAreaView","useFilterScreenChildren","findNearestNotFoundRoute","findRouteNodeByPath","useNotFoundState","useContextKey","getLinking","routeNode","globalRouteNode","initialPathname","registerProtectedRoutes","unregisterProtectedRoutes","useSortedScreens","getQualifiedRouteComponent","Screen","registerClearSlotStates","registerSetSlotState","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","resolvedInitialRouteName","useMemo","window","location","pathname","resolved","hasScreen","some","s","_s_props","props","navigation","descriptors","NavigationContent","id","descriptorsRef","useRef","value","Provider","useNavigatorContext","context","useContext","Error","useSlot","_ref","_descriptorsRef_current_current_key","notFoundState","notFoundRouteNode","notFoundPath","originalPath","NotFoundComponent","route","params","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":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "one",
|
|
3
|
-
"version": "1.16.
|
|
3
|
+
"version": "1.16.3",
|
|
4
4
|
"license": "BSD-3-Clause",
|
|
5
5
|
"sideEffects": [
|
|
6
6
|
"setup.mjs",
|
|
@@ -170,17 +170,17 @@
|
|
|
170
170
|
"@cloudflare/vite-plugin": "^1.33.1",
|
|
171
171
|
"@swc/core": "^1.14.0",
|
|
172
172
|
"@ungap/structured-clone": "^1.2.0",
|
|
173
|
-
"@vxrn/color-scheme": "1.16.
|
|
174
|
-
"@vxrn/compiler": "1.16.
|
|
175
|
-
"@vxrn/resolve": "1.16.
|
|
176
|
-
"@vxrn/tslib-lite": "1.16.
|
|
177
|
-
"@vxrn/use-isomorphic-layout-effect": "1.16.
|
|
178
|
-
"@vxrn/vite-plugin-metro": "1.16.
|
|
173
|
+
"@vxrn/color-scheme": "1.16.3",
|
|
174
|
+
"@vxrn/compiler": "1.16.3",
|
|
175
|
+
"@vxrn/resolve": "1.16.3",
|
|
176
|
+
"@vxrn/tslib-lite": "1.16.3",
|
|
177
|
+
"@vxrn/use-isomorphic-layout-effect": "1.16.3",
|
|
178
|
+
"@vxrn/vite-plugin-metro": "1.16.3",
|
|
179
179
|
"babel-dead-code-elimination": "1.0.10",
|
|
180
180
|
"babel-plugin-module-resolver": "^5.0.2",
|
|
181
181
|
"citty": "^0.1.6",
|
|
182
182
|
"core-js": "^3.38.1",
|
|
183
|
-
"create-vxrn": "1.16.
|
|
183
|
+
"create-vxrn": "1.16.3",
|
|
184
184
|
"escape-string-regexp": "^5.0.0",
|
|
185
185
|
"expo-linking": "~55.0.7",
|
|
186
186
|
"expo-modules-core": "~55.0.16",
|
|
@@ -200,7 +200,7 @@
|
|
|
200
200
|
"tsconfig-paths": "^4",
|
|
201
201
|
"use-latest-callback": "^0.2.3",
|
|
202
202
|
"vite": "^8.0.0",
|
|
203
|
-
"vxrn": "1.16.
|
|
203
|
+
"vxrn": "1.16.3",
|
|
204
204
|
"ws": "^8.18.0",
|
|
205
205
|
"xxhashjs": "^0.2.2"
|
|
206
206
|
},
|
package/src/views/Navigator.tsx
CHANGED
|
@@ -13,7 +13,7 @@ import {
|
|
|
13
13
|
useNotFoundState,
|
|
14
14
|
} from '../notFoundState'
|
|
15
15
|
import { useContextKey } from '../router/Route'
|
|
16
|
-
import {
|
|
16
|
+
import { getLinking } from '../router/linkingConfig'
|
|
17
17
|
import { routeNode as globalRouteNode, initialPathname } from '../router/router'
|
|
18
18
|
import { registerProtectedRoutes, unregisterProtectedRoutes } from '../router/router'
|
|
19
19
|
import { useSortedScreens, getQualifiedRouteComponent } from '../router/useScreens'
|
|
@@ -24,6 +24,46 @@ import { Screen } from './Screen'
|
|
|
24
24
|
// at a time anyway, we can safely reuse the same component instance.
|
|
25
25
|
const SLOT_STATIC_KEY = 'one-slot-static-key'
|
|
26
26
|
|
|
27
|
+
// resolve a navigator's initialRouteName by asking the linking config —
|
|
28
|
+
// the same getStateFromPath NavigationContainer uses for initialState —
|
|
29
|
+
// and walking the resulting nested state down to this navigator's depth.
|
|
30
|
+
//
|
|
31
|
+
// the contextKey of a layout (e.g. `/(public)/(auth-flow)`) lines up
|
|
32
|
+
// segment-for-segment with the route names react-navigation uses in its
|
|
33
|
+
// state tree, so this is a lookup at the right depth, not a re-derivation.
|
|
34
|
+
//
|
|
35
|
+
// hoisting wrinkle: when a directory has no `_layout.tsx`, its children
|
|
36
|
+
// are flattened into the nearest parent navigator with a multi-segment
|
|
37
|
+
// route name like `dashboard/[appId]/index`. the walker accepts these by
|
|
38
|
+
// consuming as many contextKey segments as the route's name spans.
|
|
39
|
+
function resolveInitialRouteFromLinking(
|
|
40
|
+
contextKey: string,
|
|
41
|
+
browserPath: string
|
|
42
|
+
): string | undefined {
|
|
43
|
+
const linking = getLinking()
|
|
44
|
+
if (!linking?.getStateFromPath) return undefined
|
|
45
|
+
|
|
46
|
+
let current = linking.getStateFromPath(browserPath, linking.config)
|
|
47
|
+
const segments = contextKey.split('/').filter(Boolean)
|
|
48
|
+
|
|
49
|
+
let i = 0
|
|
50
|
+
while (i < segments.length) {
|
|
51
|
+
if (!current?.routes?.length) return undefined
|
|
52
|
+
const idx = current.index ?? current.routes.length - 1
|
|
53
|
+
const focused = current.routes[idx]
|
|
54
|
+
if (!focused?.name || !focused.state) return undefined
|
|
55
|
+
const nameSegments = focused.name.split('/').filter(Boolean)
|
|
56
|
+
const expected = segments.slice(i, i + nameSegments.length).join('/')
|
|
57
|
+
if (focused.name !== expected) return undefined
|
|
58
|
+
current = focused.state
|
|
59
|
+
i += nameSegments.length
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
if (!current?.routes?.length) return undefined
|
|
63
|
+
const idx = current.index ?? current.routes.length - 1
|
|
64
|
+
return current.routes[idx]?.name
|
|
65
|
+
}
|
|
66
|
+
|
|
27
67
|
type NavigatorTypes = ReturnType<typeof useNavigationBuilder>
|
|
28
68
|
|
|
29
69
|
// Import RouteNode type for slot state
|
|
@@ -174,22 +214,23 @@ function QualifiedNavigator({
|
|
|
174
214
|
}: NavigatorProps & { contextKey: string; screens: React.ReactNode[] }) {
|
|
175
215
|
// LATE MOUNT FIX: when a parent layout conditionally renders (auth gate,
|
|
176
216
|
// suspense resolve, provider init, etc.), this navigator may mount after
|
|
177
|
-
// initialState was consumed. compute the correct
|
|
178
|
-
// original URL so the navigator starts on the
|
|
179
|
-
// defaulting to the first child. uses
|
|
180
|
-
// instead of window.location.pathname
|
|
181
|
-
// can push a wrong URL during the delay.
|
|
217
|
+
// initialState was consumed by NavigationContainer. compute the correct
|
|
218
|
+
// initialRouteName from the original URL so the navigator starts on the
|
|
219
|
+
// right route instead of defaulting to the first child. uses
|
|
220
|
+
// initialPathname (captured at setup) instead of window.location.pathname
|
|
221
|
+
// because React Navigation's linking can push a wrong URL during the delay.
|
|
182
222
|
//
|
|
183
|
-
//
|
|
184
|
-
//
|
|
185
|
-
//
|
|
186
|
-
//
|
|
187
|
-
//
|
|
188
|
-
//
|
|
189
|
-
// don't
|
|
190
|
-
//
|
|
191
|
-
//
|
|
192
|
-
// commit ea96e360
|
|
223
|
+
// resolution uses the linking config's getStateFromPath — the same
|
|
224
|
+
// function NavigationContainer uses to build the initial state — and
|
|
225
|
+
// walks the resulting nested state down to this navigator's depth. that
|
|
226
|
+
// covers both:
|
|
227
|
+
// - sibling route groups, e.g. `(public)` vs `(authed)` at the root
|
|
228
|
+
// (pattern matching alone ties at specificity 0 because group
|
|
229
|
+
// segments don't appear in URLs)
|
|
230
|
+
// - hoisted deep dynamic routes, e.g. `project/[projectId]/index` as
|
|
231
|
+
// a flat sibling under (app) when there's no intermediate _layout
|
|
232
|
+
// (seen in soot, commit ea96e360 — picking the first sibling mounts
|
|
233
|
+
// `index` while the browser URL is still /project/foo)
|
|
193
234
|
const resolvedInitialRouteName = React.useMemo(() => {
|
|
194
235
|
if (initialRouteName) return initialRouteName
|
|
195
236
|
|
|
@@ -198,38 +239,17 @@ function QualifiedNavigator({
|
|
|
198
239
|
(typeof window !== 'undefined' ? window.location.pathname : undefined)
|
|
199
240
|
if (!browserPath) return undefined
|
|
200
241
|
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
// when the layout path contains dynamic segments like
|
|
204
|
-
// /project/[projectId] — a literal startsWith won't match `/project/foo`),
|
|
205
|
-
// prepend the layout prefix to each screen name and match the full
|
|
206
|
-
// pattern against browserPath. matchRoutePattern handles dynamic segments
|
|
207
|
-
// segment-by-segment, so both the prefix and the screen-relative suffix
|
|
208
|
-
// resolve correctly.
|
|
209
|
-
//
|
|
210
|
-
// contextKey is the layout's path including group segments, e.g.
|
|
211
|
-
// `/(app)/project/[projectId]` or `/hooks/cases/route-group-pathname/(tabs)`.
|
|
212
|
-
// stripping groups gives the URL-relevant prefix the screens live under.
|
|
213
|
-
const layoutUrlPrefix = stripGroupSegmentsFromPath(contextKey).replace(/\/+$/, '')
|
|
214
|
-
|
|
215
|
-
// score each screen by how specifically its full pattern matches the
|
|
216
|
-
// URL. screen names may contain dynamic segments `[param]`/`[...param]`.
|
|
217
|
-
// matchRoutePattern does a prefix match so layout screens (like
|
|
218
|
-
// `project`) can match deeper URLs; the specificity score then tiebreaks
|
|
219
|
-
// to pick the best leaf.
|
|
220
|
-
let best: { name: string; specificity: number } | undefined
|
|
221
|
-
for (const screen of screens) {
|
|
222
|
-
const name = (screen as any)?.props?.name
|
|
223
|
-
if (!name) continue
|
|
224
|
-
const fullPattern = layoutUrlPrefix ? `${layoutUrlPrefix}/${name}` : name
|
|
225
|
-
const match = matchRoutePattern(fullPattern, browserPath)
|
|
226
|
-
if (!match) continue
|
|
227
|
-
if (!best || match.specificity > best.specificity) {
|
|
228
|
-
best = { name, specificity: match.specificity }
|
|
229
|
-
}
|
|
230
|
-
}
|
|
242
|
+
const resolved = resolveInitialRouteFromLinking(contextKey, browserPath)
|
|
243
|
+
if (!resolved) return undefined
|
|
231
244
|
|
|
232
|
-
return
|
|
245
|
+
// only return a name that is actually one of this navigator's screens.
|
|
246
|
+
// if the linking state's depth doesn't line up with screens here (e.g.
|
|
247
|
+
// a custom navigator that filters screens), fall back to letting react
|
|
248
|
+
// navigation pick its default.
|
|
249
|
+
const hasScreen = screens.some(
|
|
250
|
+
(s) => (s as any)?.props?.name === resolved
|
|
251
|
+
)
|
|
252
|
+
return hasScreen ? resolved : undefined
|
|
233
253
|
}, [initialRouteName, screens, contextKey])
|
|
234
254
|
|
|
235
255
|
const { state, navigation, descriptors, NavigationContent } = useNavigationBuilder(
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Navigator.d.ts","sourceRoot":"","sources":["../../src/views/Navigator.tsx"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,aAAa,EAElB,oBAAoB,EACrB,MAAM,0BAA0B,CAAA;AACjC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"Navigator.d.ts","sourceRoot":"","sources":["../../src/views/Navigator.tsx"],"names":[],"mappings":"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"}
|