one 1.15.0 → 1.15.2
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/router/interceptRoutes.cjs +2 -21
- package/dist/cjs/router/interceptRoutes.native.js +2 -21
- package/dist/cjs/router/interceptRoutes.native.js.map +1 -1
- package/dist/cjs/router/matchers.cjs +31 -0
- package/dist/cjs/router/matchers.native.js +31 -0
- package/dist/cjs/router/matchers.native.js.map +1 -1
- package/dist/cjs/views/Navigator.cjs +15 -10
- package/dist/cjs/views/Navigator.native.js +17 -30
- package/dist/cjs/views/Navigator.native.js.map +1 -1
- package/dist/esm/router/interceptRoutes.mjs +3 -22
- package/dist/esm/router/interceptRoutes.mjs.map +1 -1
- package/dist/esm/router/interceptRoutes.native.js +3 -22
- package/dist/esm/router/interceptRoutes.native.js.map +1 -1
- package/dist/esm/router/matchers.mjs +31 -1
- package/dist/esm/router/matchers.mjs.map +1 -1
- package/dist/esm/router/matchers.native.js +31 -1
- package/dist/esm/router/matchers.native.js.map +1 -1
- package/dist/esm/views/Navigator.mjs +15 -10
- package/dist/esm/views/Navigator.mjs.map +1 -1
- package/dist/esm/views/Navigator.native.js +17 -30
- package/dist/esm/views/Navigator.native.js.map +1 -1
- package/package.json +9 -9
- package/src/router/interceptRoutes.ts +12 -43
- package/src/router/matchers.ts +58 -0
- package/src/views/Navigator.tsx +48 -19
- package/types/router/interceptRoutes.d.ts.map +1 -1
- package/types/router/matchers.d.ts +22 -0
- package/types/router/matchers.d.ts.map +1 -1
- package/types/views/Navigator.d.ts.map +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["matchDynamicName","stripGroupSegmentsFromPath","isNative","navigationMode","setNavigationType","type","getNavigationType","isHardNavigation","collectAllLayoutsWithSlots","node","collected","arguments","length","slots","size","push","children","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","Symbol","iterator","_step","next","done","child","value","err","return","getLayoutPath","path","contextKey","replace","isLayoutAncestorOfPath","layoutPath","currentPath","
|
|
1
|
+
{"version":3,"names":["matchDynamicName","matchRoutePattern","stripGroupSegmentsFromPath","isNative","navigationMode","setNavigationType","type","getNavigationType","isHardNavigation","collectAllLayoutsWithSlots","node","collected","arguments","length","slots","size","push","children","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","Symbol","iterator","_step","next","done","child","value","err","return","getLayoutPath","path","contextKey","replace","isLayoutAncestorOfPath","layoutPath","currentPath","findLayoutsWithSlotsAlongPath","rootNode","allLayoutsWithSlots","ancestorLayouts","filter","layout","sort","a","b","depthA","split","Boolean","depthB","findInterceptRoute","targetPath","layoutsWithSlots","i","layoutNode","slotName","slotConfig","result","findMatchingInterceptInSlot","interceptRoutes","interceptRoute","intercept","levels","interceptTargetPath","resolvedTargetPath","resolveInterceptTargetPath","params","matchPath","layoutContextKey","fullLayoutPath","slice","Infinity","basePath","pathParts","parentParts","parentPath","join","pattern","normalizedPath","normalizedPattern","patternParts","pathIndex","patternPart","dynamicMatch","deep","remaining","name","preInterceptUrl","updateURLWithoutNavigation","href","window","location","pathname","search","history","pushState","__intercepted","__actualPath","__preInterceptUrl","clearSlotStatesCallback","registerClearSlotStates","callback","closeIntercept","state","returningFromIntercept","back","isInterceptedNavigation","_window_history_state","getInterceptedActualPath","_ref","getPreInterceptUrl"],"sources":["../../../src/router/interceptRoutes.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -15,6 +15,36 @@ function matchDynamicName(name) {
|
|
|
15
15
|
};
|
|
16
16
|
}
|
|
17
17
|
}
|
|
18
|
+
function matchRoutePattern(pattern, path) {
|
|
19
|
+
const patternSegments = pattern.split("/").filter(Boolean);
|
|
20
|
+
if (patternSegments[patternSegments.length - 1] === "index") {
|
|
21
|
+
patternSegments.pop();
|
|
22
|
+
}
|
|
23
|
+
const pathSegments = path.split("/").filter(Boolean);
|
|
24
|
+
let specificity = 0;
|
|
25
|
+
let pi = 0;
|
|
26
|
+
for (let ui = 0; ui < patternSegments.length; ui++) {
|
|
27
|
+
const seg = patternSegments[ui];
|
|
28
|
+
if (seg.startsWith("(") && seg.endsWith(")")) continue;
|
|
29
|
+
if (seg.startsWith("[...") && seg.endsWith("]")) {
|
|
30
|
+
return {
|
|
31
|
+
specificity: specificity + (pathSegments.length - pi)
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
if (pi >= pathSegments.length) return null;
|
|
35
|
+
if (seg.startsWith("[") && seg.endsWith("]")) {
|
|
36
|
+
specificity += 1;
|
|
37
|
+
pi += 1;
|
|
38
|
+
continue;
|
|
39
|
+
}
|
|
40
|
+
if (seg !== pathSegments[pi]) return null;
|
|
41
|
+
specificity += 2;
|
|
42
|
+
pi += 1;
|
|
43
|
+
}
|
|
44
|
+
return {
|
|
45
|
+
specificity
|
|
46
|
+
};
|
|
47
|
+
}
|
|
18
48
|
function matchDeepDynamicRouteName(name) {
|
|
19
49
|
return name.match(/^\[\.\.\.([^/]+?)\]$/)?.[1];
|
|
20
50
|
}
|
|
@@ -102,5 +132,5 @@ function hasInterceptPrefix(segment) {
|
|
|
102
132
|
function stripSlotSegmentsFromPath(path) {
|
|
103
133
|
return path.split("/").filter(segment => !isSlotDirectory(segment)).join("/");
|
|
104
134
|
}
|
|
105
|
-
export { getContextKey, getNameFromFilePath, hasInterceptPrefix, isSlotDirectory, isTypedRoute, matchArrayGroupName, matchDeepDynamicRouteName, matchDirectoryRenderMode, matchDynamicName, matchGroupName, matchInterceptPrefix, matchSlotName, removeFileSystemDots, removeSupportedExtensions, stripGroupSegmentsFromPath, stripInterceptPrefix, stripInvisibleSegmentsFromPath, stripSlotSegmentsFromPath, testNotFound };
|
|
135
|
+
export { getContextKey, getNameFromFilePath, hasInterceptPrefix, isSlotDirectory, isTypedRoute, matchArrayGroupName, matchDeepDynamicRouteName, matchDirectoryRenderMode, matchDynamicName, matchGroupName, matchInterceptPrefix, matchRoutePattern, matchSlotName, removeFileSystemDots, removeSupportedExtensions, stripGroupSegmentsFromPath, stripInterceptPrefix, stripInvisibleSegmentsFromPath, stripSlotSegmentsFromPath, testNotFound };
|
|
106
136
|
//# sourceMappingURL=matchers.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["dynamicNameRe","matchDynamicName","name","paramName","match","startsWith","slice","deep","
|
|
1
|
+
{"version":3,"names":["dynamicNameRe","matchDynamicName","name","paramName","match","startsWith","slice","deep","matchRoutePattern","pattern","path","patternSegments","split","filter","Boolean","length","pop","pathSegments","specificity","pi","ui","seg","endsWith","matchDeepDynamicRouteName","testNotFound","matchGroupName","matchArrayGroupName","getNameFromFilePath","removeSupportedExtensions","removeFileSystemDots","getContextKey","normal","replace","filePath","stripGroupSegmentsFromPath","reduce","acc","v","push","join","stripInvisibleSegmentsFromPath","isTypedRoute","directoryRenderModeRe","matchDirectoryRenderMode","renderMode","slotPrefixRe","matchSlotName","isSlotDirectory","test","matchInterceptPrefix","segment","prefixes","targetPath","includes","levels","Infinity","originalSegment","doubleDotMatches","stripInterceptPrefix","hasInterceptPrefix","stripSlotSegmentsFromPath"],"sources":["../../../src/router/matchers.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -16,6 +16,36 @@ function matchDynamicName(name) {
|
|
|
16
16
|
};
|
|
17
17
|
}
|
|
18
18
|
}
|
|
19
|
+
function matchRoutePattern(pattern, path) {
|
|
20
|
+
var patternSegments = pattern.split("/").filter(Boolean);
|
|
21
|
+
if (patternSegments[patternSegments.length - 1] === "index") {
|
|
22
|
+
patternSegments.pop();
|
|
23
|
+
}
|
|
24
|
+
var pathSegments = path.split("/").filter(Boolean);
|
|
25
|
+
var specificity = 0;
|
|
26
|
+
var pi = 0;
|
|
27
|
+
for (var ui = 0; ui < patternSegments.length; ui++) {
|
|
28
|
+
var seg = patternSegments[ui];
|
|
29
|
+
if (seg.startsWith("(") && seg.endsWith(")")) continue;
|
|
30
|
+
if (seg.startsWith("[...") && seg.endsWith("]")) {
|
|
31
|
+
return {
|
|
32
|
+
specificity: specificity + (pathSegments.length - pi)
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
if (pi >= pathSegments.length) return null;
|
|
36
|
+
if (seg.startsWith("[") && seg.endsWith("]")) {
|
|
37
|
+
specificity += 1;
|
|
38
|
+
pi += 1;
|
|
39
|
+
continue;
|
|
40
|
+
}
|
|
41
|
+
if (seg !== pathSegments[pi]) return null;
|
|
42
|
+
specificity += 2;
|
|
43
|
+
pi += 1;
|
|
44
|
+
}
|
|
45
|
+
return {
|
|
46
|
+
specificity
|
|
47
|
+
};
|
|
48
|
+
}
|
|
19
49
|
function matchDeepDynamicRouteName(name) {
|
|
20
50
|
var _name_match;
|
|
21
51
|
return (_name_match = name.match(/^\[\.\.\.([^/]+?)\]$/)) === null || _name_match === void 0 ? void 0 : _name_match[1];
|
|
@@ -109,5 +139,5 @@ function stripSlotSegmentsFromPath(path) {
|
|
|
109
139
|
return !isSlotDirectory(segment);
|
|
110
140
|
}).join("/");
|
|
111
141
|
}
|
|
112
|
-
export { getContextKey, getNameFromFilePath, hasInterceptPrefix, isSlotDirectory, isTypedRoute, matchArrayGroupName, matchDeepDynamicRouteName, matchDirectoryRenderMode, matchDynamicName, matchGroupName, matchInterceptPrefix, matchSlotName, removeFileSystemDots, removeSupportedExtensions, stripGroupSegmentsFromPath, stripInterceptPrefix, stripInvisibleSegmentsFromPath, stripSlotSegmentsFromPath, testNotFound };
|
|
142
|
+
export { getContextKey, getNameFromFilePath, hasInterceptPrefix, isSlotDirectory, isTypedRoute, matchArrayGroupName, matchDeepDynamicRouteName, matchDirectoryRenderMode, matchDynamicName, matchGroupName, matchInterceptPrefix, matchRoutePattern, matchSlotName, removeFileSystemDots, removeSupportedExtensions, stripGroupSegmentsFromPath, stripInterceptPrefix, stripInvisibleSegmentsFromPath, stripSlotSegmentsFromPath, testNotFound };
|
|
113
143
|
//# sourceMappingURL=matchers.native.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["dynamicNameRe","matchDynamicName","name","_name_match","paramName","match","startsWith","slice","deep","
|
|
1
|
+
{"version":3,"names":["dynamicNameRe","matchDynamicName","name","_name_match","paramName","match","startsWith","slice","deep","matchRoutePattern","pattern","path","patternSegments","split","filter","Boolean","length","pop","pathSegments","specificity","pi","ui","seg","endsWith","matchDeepDynamicRouteName","testNotFound","matchGroupName","matchArrayGroupName","getNameFromFilePath","removeSupportedExtensions","removeFileSystemDots","getContextKey","normal","replace","filePath","stripGroupSegmentsFromPath","reduce","acc","v","push","join","stripInvisibleSegmentsFromPath","isTypedRoute","directoryRenderModeRe","matchDirectoryRenderMode","renderMode","slotPrefixRe","matchSlotName","isSlotDirectory","test","matchInterceptPrefix","segment","prefixes","targetPath","includes"],"sources":["../../../src/router/matchers.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -4,6 +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 { matchRoutePattern, stripGroupSegmentsFromPath } from "../router/matchers.mjs";
|
|
7
8
|
import { routeNode as globalRouteNode, initialPathname } from "../router/router.mjs";
|
|
8
9
|
import { registerProtectedRoutes, unregisterProtectedRoutes } from "../router/router.mjs";
|
|
9
10
|
import { useSortedScreens, getQualifiedRouteComponent } from "../router/useScreens.mjs";
|
|
@@ -93,19 +94,23 @@ function QualifiedNavigator({
|
|
|
93
94
|
if (initialRouteName) return initialRouteName;
|
|
94
95
|
const browserPath = initialPathname ?? (typeof window !== "undefined" ? window.location.pathname : void 0);
|
|
95
96
|
if (!browserPath) return void 0;
|
|
96
|
-
const
|
|
97
|
+
const layoutUrlPrefix = stripGroupSegmentsFromPath(contextKey).replace(/\/+$/, "");
|
|
98
|
+
let best;
|
|
97
99
|
for (const screen of screens) {
|
|
98
|
-
const
|
|
99
|
-
if (
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
if (
|
|
104
|
-
|
|
100
|
+
const name = screen?.props?.name;
|
|
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
|
+
};
|
|
105
110
|
}
|
|
106
111
|
}
|
|
107
|
-
return
|
|
108
|
-
}, [initialRouteName, screens]);
|
|
112
|
+
return best?.name;
|
|
113
|
+
}, [initialRouteName, screens, contextKey]);
|
|
109
114
|
const {
|
|
110
115
|
state,
|
|
111
116
|
navigation,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["StackRouter","useNavigationBuilder","React","SafeAreaView","useFilterScreenChildren","findNearestNotFoundRoute","findRouteNodeByPath","useNotFoundState","useContextKey","routeNode","globalRouteNode","initialPathname","registerProtectedRoutes","unregisterProtectedRoutes","useSortedScreens","getQualifiedRouteComponent","Screen","registerClearSlotStates","registerSetSlotState","Fragment","jsx","SLOT_STATIC_KEY","globalSlotState","Map","slotStateListeners","Set","getSlotState","slotName","get","setSlotState","state","delete","set","forEach","listener","clearAllSlotStates","clear","useSlotStateSubscription","forceUpdate","useReducer","x","useEffect","add","NavigatorContext","createContext","process","env","NODE_ENV","displayName","Navigator","initialRouteName","screenOptions","children","router","contextKey","screens","otherSlot","protectedScreens","isCustomNavigator","sorted","length","console","warn","QualifiedNavigator","resolvedInitialRouteName","useMemo","browserPath","window","location","pathname","
|
|
1
|
+
{"version":3,"names":["StackRouter","useNavigationBuilder","React","SafeAreaView","useFilterScreenChildren","findNearestNotFoundRoute","findRouteNodeByPath","useNotFoundState","useContextKey","matchRoutePattern","stripGroupSegmentsFromPath","routeNode","globalRouteNode","initialPathname","registerProtectedRoutes","unregisterProtectedRoutes","useSortedScreens","getQualifiedRouteComponent","Screen","registerClearSlotStates","registerSetSlotState","Fragment","jsx","SLOT_STATIC_KEY","globalSlotState","Map","slotStateListeners","Set","getSlotState","slotName","get","setSlotState","state","delete","set","forEach","listener","clearAllSlotStates","clear","useSlotStateSubscription","forceUpdate","useReducer","x","useEffect","add","NavigatorContext","createContext","process","env","NODE_ENV","displayName","Navigator","initialRouteName","screenOptions","children","router","contextKey","screens","otherSlot","protectedScreens","isCustomNavigator","sorted","length","console","warn","QualifiedNavigator","resolvedInitialRouteName","useMemo","browserPath","window","location","pathname","layoutUrlPrefix","replace","best","screen","name","props","fullPattern","match","specificity","navigation","descriptors","NavigationContent","id","descriptorsRef","useRef","current","value","Provider","useNavigatorContext","context","useContext","Error","useSlot","notFoundState","notFoundRouteNode","notFoundPath","originalPath","NotFoundComponent","route","params","routes","index","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,6 +5,7 @@ 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 { matchRoutePattern, stripGroupSegmentsFromPath } from "../router/matchers.native.js";
|
|
8
9
|
import { routeNode as globalRouteNode, initialPathname } from "../router/router.native.js";
|
|
9
10
|
import { registerProtectedRoutes, unregisterProtectedRoutes } from "../router/router.native.js";
|
|
10
11
|
import { useSortedScreens, getQualifiedRouteComponent } from "../router/useScreens.native.js";
|
|
@@ -101,15 +102,26 @@ function QualifiedNavigator(param) {
|
|
|
101
102
|
if (initialRouteName) return initialRouteName;
|
|
102
103
|
var browserPath = initialPathname !== null && initialPathname !== void 0 ? initialPathname : typeof window !== "undefined" ? window.location.pathname : void 0;
|
|
103
104
|
if (!browserPath) return void 0;
|
|
104
|
-
var
|
|
105
|
+
var layoutUrlPrefix = stripGroupSegmentsFromPath(contextKey).replace(/\/+$/, "");
|
|
106
|
+
var best;
|
|
105
107
|
var _iteratorNormalCompletion = true,
|
|
106
108
|
_didIteratorError = false,
|
|
107
109
|
_iteratorError = void 0;
|
|
108
110
|
try {
|
|
109
111
|
for (var _iterator = screens[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
|
|
110
112
|
var screen = _step.value;
|
|
111
|
-
var
|
|
112
|
-
|
|
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
|
+
}
|
|
113
125
|
}
|
|
114
126
|
} catch (err) {
|
|
115
127
|
_didIteratorError = true;
|
|
@@ -125,33 +137,8 @@ function QualifiedNavigator(param) {
|
|
|
125
137
|
}
|
|
126
138
|
}
|
|
127
139
|
}
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
_iteratorError1 = void 0;
|
|
131
|
-
try {
|
|
132
|
-
for (var _iterator1 = screenNames[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true) {
|
|
133
|
-
var name = _step1.value;
|
|
134
|
-
var base = name.replace(/\/index$/, "");
|
|
135
|
-
if (browserPath.endsWith("/" + base) || browserPath.includes("/" + base + "/")) {
|
|
136
|
-
return name;
|
|
137
|
-
}
|
|
138
|
-
}
|
|
139
|
-
} catch (err) {
|
|
140
|
-
_didIteratorError1 = true;
|
|
141
|
-
_iteratorError1 = err;
|
|
142
|
-
} finally {
|
|
143
|
-
try {
|
|
144
|
-
if (!_iteratorNormalCompletion1 && _iterator1.return != null) {
|
|
145
|
-
_iterator1.return();
|
|
146
|
-
}
|
|
147
|
-
} finally {
|
|
148
|
-
if (_didIteratorError1) {
|
|
149
|
-
throw _iteratorError1;
|
|
150
|
-
}
|
|
151
|
-
}
|
|
152
|
-
}
|
|
153
|
-
return void 0;
|
|
154
|
-
}, [initialRouteName, screens]);
|
|
140
|
+
return best === null || best === void 0 ? void 0 : best.name;
|
|
141
|
+
}, [initialRouteName, screens, contextKey]);
|
|
155
142
|
var {
|
|
156
143
|
state,
|
|
157
144
|
navigation,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["jsx","_jsx","Fragment","_Fragment","StackRouter","useNavigationBuilder","React","SafeAreaView","useFilterScreenChildren","findNearestNotFoundRoute","findRouteNodeByPath","useNotFoundState","useContextKey","routeNode","globalRouteNode","initialPathname","registerProtectedRoutes","unregisterProtectedRoutes","useSortedScreens","getQualifiedRouteComponent","Screen","registerClearSlotStates","registerSetSlotState","SLOT_STATIC_KEY","globalSlotState","Map","slotStateListeners","Set","getSlotState","slotName","get","setSlotState","state","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","contextKey","screens","otherSlot","protectedScreens","isCustomNavigator","sorted","length","console","warn","QualifiedNavigator","resolvedInitialRouteName","useMemo","browserPath","window","location","pathname","
|
|
1
|
+
{"version":3,"names":["jsx","_jsx","Fragment","_Fragment","StackRouter","useNavigationBuilder","React","SafeAreaView","useFilterScreenChildren","findNearestNotFoundRoute","findRouteNodeByPath","useNotFoundState","useContextKey","matchRoutePattern","stripGroupSegmentsFromPath","routeNode","globalRouteNode","initialPathname","registerProtectedRoutes","unregisterProtectedRoutes","useSortedScreens","getQualifiedRouteComponent","Screen","registerClearSlotStates","registerSetSlotState","SLOT_STATIC_KEY","globalSlotState","Map","slotStateListeners","Set","getSlotState","slotName","get","setSlotState","state","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","contextKey","screens","otherSlot","protectedScreens","isCustomNavigator","sorted","length","console","warn","QualifiedNavigator","resolvedInitialRouteName","useMemo","browserPath","window","location","pathname","layoutUrlPrefix","replace","best","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","Symbol","iterator","_step","next","done","screen","value","_screen_props","name","props","fullPattern","match","specificity","err","return","navigation","descriptors","NavigationContent","id","descriptorsRef","useRef","current","Provider","useNavigatorContext","context","useContext","Error","useSlot","_ref","_descriptorsRef_current_current_key","notFoundState","notFoundRouteNode","notFoundPath","originalPath","NotFoundComponent","route","params","routes","index","renderedElement","key","render","cloneElement","Slot","memo","Slot2","QualifiedSlot","DefaultNavigator","style","flex"],"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.15.
|
|
3
|
+
"version": "1.15.2",
|
|
4
4
|
"license": "BSD-3-Clause",
|
|
5
5
|
"sideEffects": [
|
|
6
6
|
"setup.mjs",
|
|
@@ -165,17 +165,17 @@
|
|
|
165
165
|
"@react-navigation/routers": "~7.5.3",
|
|
166
166
|
"@swc/core": "^1.14.0",
|
|
167
167
|
"@ungap/structured-clone": "^1.2.0",
|
|
168
|
-
"@vxrn/color-scheme": "1.15.
|
|
169
|
-
"@vxrn/compiler": "1.15.
|
|
170
|
-
"@vxrn/resolve": "1.15.
|
|
171
|
-
"@vxrn/tslib-lite": "1.15.
|
|
172
|
-
"@vxrn/use-isomorphic-layout-effect": "1.15.
|
|
173
|
-
"@vxrn/vite-plugin-metro": "1.15.
|
|
168
|
+
"@vxrn/color-scheme": "1.15.2",
|
|
169
|
+
"@vxrn/compiler": "1.15.2",
|
|
170
|
+
"@vxrn/resolve": "1.15.2",
|
|
171
|
+
"@vxrn/tslib-lite": "1.15.2",
|
|
172
|
+
"@vxrn/use-isomorphic-layout-effect": "1.15.2",
|
|
173
|
+
"@vxrn/vite-plugin-metro": "1.15.2",
|
|
174
174
|
"babel-dead-code-elimination": "1.0.10",
|
|
175
175
|
"babel-plugin-module-resolver": "^5.0.2",
|
|
176
176
|
"citty": "^0.1.6",
|
|
177
177
|
"core-js": "^3.38.1",
|
|
178
|
-
"create-vxrn": "1.15.
|
|
178
|
+
"create-vxrn": "1.15.2",
|
|
179
179
|
"escape-string-regexp": "^5.0.0",
|
|
180
180
|
"expo-linking": "~55.0.7",
|
|
181
181
|
"expo-modules-core": "~55.0.16",
|
|
@@ -195,7 +195,7 @@
|
|
|
195
195
|
"ts-pattern": "^5.6.2",
|
|
196
196
|
"use-latest-callback": "^0.2.3",
|
|
197
197
|
"vite": "^8.0.0",
|
|
198
|
-
"vxrn": "1.15.
|
|
198
|
+
"vxrn": "1.15.2",
|
|
199
199
|
"ws": "^8.18.0",
|
|
200
200
|
"xxhashjs": "^0.2.2"
|
|
201
201
|
},
|
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
import type { RouteNode, SlotConfig } from './Route'
|
|
2
|
-
import {
|
|
2
|
+
import {
|
|
3
|
+
matchDynamicName,
|
|
4
|
+
matchRoutePattern,
|
|
5
|
+
stripGroupSegmentsFromPath,
|
|
6
|
+
} from './matchers'
|
|
3
7
|
import { isNative } from '../constants'
|
|
4
8
|
|
|
5
9
|
// ============================================
|
|
@@ -84,50 +88,15 @@ function getLayoutPath(node: RouteNode): string {
|
|
|
84
88
|
|
|
85
89
|
/**
|
|
86
90
|
* Check if a layout path is an ancestor of (or equal to) the current path.
|
|
87
|
-
* A layout at /settings/account is an ancestor of /settings/account/foo
|
|
88
|
-
* Handles dynamic segments: /[serverId]/[channelId] matches /tamagui/tamagui-apps
|
|
91
|
+
* A layout at /settings/account is an ancestor of /settings/account/foo.
|
|
92
|
+
* Handles dynamic segments: /[serverId]/[channelId] matches /tamagui/tamagui-apps.
|
|
89
93
|
*/
|
|
90
94
|
function isLayoutAncestorOfPath(layoutPath: string, currentPath: string): boolean {
|
|
91
|
-
//
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
if (normalizedLayout === '/') return true
|
|
97
|
-
|
|
98
|
-
// Split into segments for dynamic matching
|
|
99
|
-
const layoutParts = normalizedLayout.split('/').filter(Boolean)
|
|
100
|
-
const currentParts = normalizedCurrent.split('/').filter(Boolean)
|
|
101
|
-
|
|
102
|
-
// Layout can't be ancestor if it has more segments than current path
|
|
103
|
-
if (layoutParts.length > currentParts.length) return false
|
|
104
|
-
|
|
105
|
-
// Check each layout segment matches the corresponding current segment
|
|
106
|
-
// Dynamic segments like [id] match any value
|
|
107
|
-
for (let i = 0; i < layoutParts.length; i++) {
|
|
108
|
-
const layoutPart = layoutParts[i]
|
|
109
|
-
const currentPart = currentParts[i]
|
|
110
|
-
|
|
111
|
-
// Check if this is a dynamic segment
|
|
112
|
-
const dynamicMatch = matchDynamicName(layoutPart)
|
|
113
|
-
if (dynamicMatch) {
|
|
114
|
-
// Dynamic segment - matches any value (including catch-all)
|
|
115
|
-
if (dynamicMatch.deep) {
|
|
116
|
-
// Catch-all matches rest of path, so layout is definitely an ancestor
|
|
117
|
-
return true
|
|
118
|
-
}
|
|
119
|
-
// Single dynamic segment - matches this position, continue checking
|
|
120
|
-
continue
|
|
121
|
-
}
|
|
122
|
-
|
|
123
|
-
// Static segment - must match exactly
|
|
124
|
-
if (layoutPart !== currentPart) {
|
|
125
|
-
return false
|
|
126
|
-
}
|
|
127
|
-
}
|
|
128
|
-
|
|
129
|
-
// All layout segments matched
|
|
130
|
-
return true
|
|
95
|
+
// root layout is ancestor of everything
|
|
96
|
+
if (!layoutPath.replace(/\/+$/, '')) return true
|
|
97
|
+
// matchRoutePattern does prefix matching with dynamic segment support —
|
|
98
|
+
// a null result means the layout isn't an ancestor of currentPath
|
|
99
|
+
return matchRoutePattern(layoutPath, currentPath) !== null
|
|
131
100
|
}
|
|
132
101
|
|
|
133
102
|
/**
|