@sigmela/router 0.6.0 → 0.7.1
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/CHANGELOG.md +28 -0
- package/dist/Router.d.ts +6 -0
- package/dist/Router.d.ts.map +1 -1
- package/dist/index.js +137 -16
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,34 @@ All notable changes to this package are documented here. The format follows
|
|
|
4
4
|
[Keep a Changelog](https://keepachangelog.com/en/1.1.0/) and the project uses
|
|
5
5
|
[semantic versioning](https://semver.org/).
|
|
6
6
|
|
|
7
|
+
## 0.7.1
|
|
8
|
+
|
|
9
|
+
### Fixed
|
|
10
|
+
|
|
11
|
+
- A pending guard no longer replaces a container's chrome. `Router.Protected`
|
|
12
|
+
with `when="pending"` stripped `layout`/`component`/`elementType` off the
|
|
13
|
+
matched route; for a `Drawer` or `TabBar` container that swapped the app's
|
|
14
|
+
own shell for `DefaultDrawerLayout`, and the pending node never appeared at
|
|
15
|
+
all because `DrawerRouteContent` renders from `layout`, not `element`. An
|
|
16
|
+
app whose drawer chrome differs from the default — a custom sidebar, say —
|
|
17
|
+
showed the built-in chrome for as long as the guard stayed undecided.
|
|
18
|
+
Container routes now keep their chrome and swap only the content pane.
|
|
19
|
+
Overlay flow entries carry no `container`, so modal and sheet presentations
|
|
20
|
+
are unaffected.
|
|
21
|
+
|
|
22
|
+
### Added
|
|
23
|
+
|
|
24
|
+
- `flowParent` on route props: the route id that must sit immediately below a
|
|
25
|
+
screen when a modal flow is entered straight at a deeper step, restoring the
|
|
26
|
+
history a visitor would have built by walking the flow normally. Shipped
|
|
27
|
+
here rather than in 0.7.0 — 0.7.0 was published before these commits landed,
|
|
28
|
+
so consumers were carrying it as a local patch.
|
|
29
|
+
|
|
30
|
+
### Notes
|
|
31
|
+
|
|
32
|
+
- 0.7.0 has no entry of its own; everything above covers the gap between the
|
|
33
|
+
published 0.7.0 tarball and this release.
|
|
34
|
+
|
|
7
35
|
## 0.6.0
|
|
8
36
|
|
|
9
37
|
### Added
|
package/dist/Router.d.ts
CHANGED
|
@@ -87,6 +87,12 @@ type RouterRouteElement = ReactNode | ElementType;
|
|
|
87
87
|
export interface RouterRouteProps {
|
|
88
88
|
id?: string;
|
|
89
89
|
path?: string;
|
|
90
|
+
/**
|
|
91
|
+
* Route id that must sit immediately below this screen when a modal flow is
|
|
92
|
+
* entered straight at a deeper step. This restores the same spatial history
|
|
93
|
+
* a visitor would have built by walking the flow normally.
|
|
94
|
+
*/
|
|
95
|
+
flowParent?: string;
|
|
90
96
|
stackKey?: string | ((props: RouterRouteRenderProps) => string);
|
|
91
97
|
fallback?: ReactNode;
|
|
92
98
|
animation?: RouterScreenAnimation;
|
package/dist/Router.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Router.d.ts","sourceRoot":"","sources":["../src/Router.tsx"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"Router.d.ts","sourceRoot":"","sources":["../src/Router.tsx"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -1192,6 +1192,7 @@ function compiledRouteFromProps(props, path, routeId, presentation, animation, r
|
|
|
1192
1192
|
return {
|
|
1193
1193
|
id: routeId,
|
|
1194
1194
|
path,
|
|
1195
|
+
flowParent: props.flowParent,
|
|
1195
1196
|
presentation,
|
|
1196
1197
|
animation,
|
|
1197
1198
|
overlayLayout: props.overlayLayout,
|
|
@@ -1221,6 +1222,7 @@ function compileStackRoutes(children, parentPath, parentId = "root", inheritedGu
|
|
|
1221
1222
|
routes.push({
|
|
1222
1223
|
id: routeId,
|
|
1223
1224
|
path,
|
|
1225
|
+
flowParent: props.flowParent,
|
|
1224
1226
|
presentation,
|
|
1225
1227
|
animation,
|
|
1226
1228
|
overlayLayout: props.overlayLayout,
|
|
@@ -1280,10 +1282,11 @@ function compileStackRoutes(children, parentPath, parentId = "root", inheritedGu
|
|
|
1280
1282
|
const overlayFlow = {
|
|
1281
1283
|
id: `${routeId}/overlay-flow`,
|
|
1282
1284
|
kind: presentation,
|
|
1283
|
-
routes: flowRoutes
|
|
1285
|
+
routes: flowRoutes,
|
|
1286
|
+
entries: []
|
|
1284
1287
|
};
|
|
1285
1288
|
for (const flowRoute of flowRoutes) {
|
|
1286
|
-
|
|
1289
|
+
const entryRoute = {
|
|
1287
1290
|
id: `${overlayFlow.id}:${flowRoute.id}`,
|
|
1288
1291
|
path: flowRoute.path,
|
|
1289
1292
|
presentation,
|
|
@@ -1295,7 +1298,9 @@ function compileStackRoutes(children, parentPath, parentId = "root", inheritedGu
|
|
|
1295
1298
|
fallback: flowRoute.fallback ?? props.fallback,
|
|
1296
1299
|
childRoute: flowRoute,
|
|
1297
1300
|
overlayFlow
|
|
1298
|
-
}
|
|
1301
|
+
};
|
|
1302
|
+
overlayFlow.entries.push(entryRoute);
|
|
1303
|
+
routes.push(entryRoute);
|
|
1299
1304
|
}
|
|
1300
1305
|
return;
|
|
1301
1306
|
}
|
|
@@ -1554,6 +1559,7 @@ function compileStackRoutes(children, parentPath, parentId = "root", inheritedGu
|
|
|
1554
1559
|
routes.push({
|
|
1555
1560
|
id: routeId,
|
|
1556
1561
|
path,
|
|
1562
|
+
flowParent: props.flowParent,
|
|
1557
1563
|
presentation,
|
|
1558
1564
|
animation,
|
|
1559
1565
|
overlayLayout: props.overlayLayout,
|
|
@@ -3030,6 +3036,65 @@ function modalFlowScreenFromMatch(match, pathname, search, state, historyIndex,
|
|
|
3030
3036
|
)
|
|
3031
3037
|
};
|
|
3032
3038
|
}
|
|
3039
|
+
function overlayFlowRootPathname(rootPath, pathname) {
|
|
3040
|
+
const depth = rootPath.split("/").filter(Boolean).length;
|
|
3041
|
+
const segments = pathname.split("/").filter(Boolean);
|
|
3042
|
+
if (segments.length <= depth) return pathname;
|
|
3043
|
+
return `/${segments.slice(0, depth).join("/")}`;
|
|
3044
|
+
}
|
|
3045
|
+
function seedModalFlowScreens(match, pathname, search, state) {
|
|
3046
|
+
const flow = match.route.overlayFlow;
|
|
3047
|
+
const rootEntry = flow?.entries[0];
|
|
3048
|
+
const rootRoute = flow?.routes[0];
|
|
3049
|
+
const targetRoute = match.route.childRoute;
|
|
3050
|
+
if (!flow || !rootEntry || !rootRoute || !targetRoute) {
|
|
3051
|
+
const target = modalFlowScreenFromMatch(
|
|
3052
|
+
match,
|
|
3053
|
+
pathname,
|
|
3054
|
+
search,
|
|
3055
|
+
state,
|
|
3056
|
+
0,
|
|
3057
|
+
"push"
|
|
3058
|
+
);
|
|
3059
|
+
return target ? [target] : void 0;
|
|
3060
|
+
}
|
|
3061
|
+
const routeChain = [targetRoute];
|
|
3062
|
+
const visitedRouteIds = /* @__PURE__ */ new Set([targetRoute.id]);
|
|
3063
|
+
let currentRoute = targetRoute;
|
|
3064
|
+
while (currentRoute.flowParent) {
|
|
3065
|
+
const parentRoute = flow.routes.find(
|
|
3066
|
+
(route) => route.id === currentRoute.flowParent
|
|
3067
|
+
);
|
|
3068
|
+
if (!parentRoute || visitedRouteIds.has(parentRoute.id)) break;
|
|
3069
|
+
routeChain.unshift(parentRoute);
|
|
3070
|
+
visitedRouteIds.add(parentRoute.id);
|
|
3071
|
+
currentRoute = parentRoute;
|
|
3072
|
+
}
|
|
3073
|
+
if (!visitedRouteIds.has(rootRoute.id)) {
|
|
3074
|
+
routeChain.unshift(rootRoute);
|
|
3075
|
+
}
|
|
3076
|
+
return routeChain.flatMap((route, historyIndex) => {
|
|
3077
|
+
const routeIndex = flow.routes.indexOf(route);
|
|
3078
|
+
const overlayRoute = flow.entries[routeIndex];
|
|
3079
|
+
if (!overlayRoute) return [];
|
|
3080
|
+
const resolvedPathname = route === targetRoute ? pathname : pathForRoutePattern(route.path, match.params) ?? (route === rootRoute && route.path ? overlayFlowRootPathname(route.path, pathname) : pathname);
|
|
3081
|
+
return [
|
|
3082
|
+
{
|
|
3083
|
+
overlayRoute,
|
|
3084
|
+
route,
|
|
3085
|
+
params: match.params,
|
|
3086
|
+
pathname: resolvedPathname,
|
|
3087
|
+
search,
|
|
3088
|
+
historyState: stateWithHistoryIndex(
|
|
3089
|
+
state,
|
|
3090
|
+
historyIndex,
|
|
3091
|
+
createRouterId(),
|
|
3092
|
+
"push"
|
|
3093
|
+
)
|
|
3094
|
+
}
|
|
3095
|
+
];
|
|
3096
|
+
});
|
|
3097
|
+
}
|
|
3033
3098
|
function RouterRuntime({
|
|
3034
3099
|
children,
|
|
3035
3100
|
fallback,
|
|
@@ -3077,10 +3142,32 @@ function RouterRuntime({
|
|
|
3077
3142
|
const match = useMemo(() => {
|
|
3078
3143
|
if (!matchedRoute) return null;
|
|
3079
3144
|
if (guardOutcome?.status !== "pending") return matchedRoute;
|
|
3145
|
+
const route = matchedRoute.route;
|
|
3146
|
+
if (route.container && route.childRoute) {
|
|
3147
|
+
return {
|
|
3148
|
+
...matchedRoute,
|
|
3149
|
+
route: {
|
|
3150
|
+
...route,
|
|
3151
|
+
childRoute: {
|
|
3152
|
+
...route.childRoute,
|
|
3153
|
+
element: guardOutcome.element,
|
|
3154
|
+
elementType: void 0,
|
|
3155
|
+
component: void 0,
|
|
3156
|
+
layout: void 0,
|
|
3157
|
+
overlayLayout: void 0,
|
|
3158
|
+
render: void 0,
|
|
3159
|
+
childrenNode: void 0,
|
|
3160
|
+
container: void 0,
|
|
3161
|
+
childRoute: void 0,
|
|
3162
|
+
splitView: void 0
|
|
3163
|
+
}
|
|
3164
|
+
}
|
|
3165
|
+
};
|
|
3166
|
+
}
|
|
3080
3167
|
return {
|
|
3081
3168
|
...matchedRoute,
|
|
3082
3169
|
route: {
|
|
3083
|
-
...
|
|
3170
|
+
...route,
|
|
3084
3171
|
element: guardOutcome.element,
|
|
3085
3172
|
elementType: void 0,
|
|
3086
3173
|
component: void 0,
|
|
@@ -3343,6 +3430,42 @@ function RouterRuntime({
|
|
|
3343
3430
|
setModalEntries(
|
|
3344
3431
|
(current) => current.map((candidate) => {
|
|
3345
3432
|
if (candidate.id !== entry.id || !candidate.flowScreens) return candidate;
|
|
3433
|
+
if (operation === "push") {
|
|
3434
|
+
let existingIndex = -1;
|
|
3435
|
+
for (let index = candidate.flowScreens.length - 1; index >= 0; index -= 1) {
|
|
3436
|
+
const existing = candidate.flowScreens[index];
|
|
3437
|
+
if (existing.route.id === screen.route.id && normalizedPath(existing.pathname) === normalizedPath(screen.pathname) && existing.search === screen.search) {
|
|
3438
|
+
existingIndex = index;
|
|
3439
|
+
break;
|
|
3440
|
+
}
|
|
3441
|
+
}
|
|
3442
|
+
if (existingIndex !== -1) {
|
|
3443
|
+
const existing = candidate.flowScreens[existingIndex];
|
|
3444
|
+
const navigationKey = historyNavigationKeyFromState(existing.historyState) ?? createRouterId();
|
|
3445
|
+
const revealedScreen = {
|
|
3446
|
+
...screen,
|
|
3447
|
+
historyState: stateWithHistoryIndex(
|
|
3448
|
+
state,
|
|
3449
|
+
existingIndex,
|
|
3450
|
+
navigationKey,
|
|
3451
|
+
"sync"
|
|
3452
|
+
)
|
|
3453
|
+
};
|
|
3454
|
+
const flowScreens2 = [
|
|
3455
|
+
...candidate.flowScreens.slice(0, existingIndex),
|
|
3456
|
+
revealedScreen
|
|
3457
|
+
];
|
|
3458
|
+
return {
|
|
3459
|
+
...candidate,
|
|
3460
|
+
route: revealedScreen.overlayRoute,
|
|
3461
|
+
params: revealedScreen.params,
|
|
3462
|
+
pathname: revealedScreen.pathname,
|
|
3463
|
+
search: revealedScreen.search,
|
|
3464
|
+
historyState: revealedScreen.historyState,
|
|
3465
|
+
flowScreens: flowScreens2
|
|
3466
|
+
};
|
|
3467
|
+
}
|
|
3468
|
+
}
|
|
3346
3469
|
const flowScreens = operation === "replace" ? [...candidate.flowScreens.slice(0, -1), screen] : [...candidate.flowScreens, screen];
|
|
3347
3470
|
return {
|
|
3348
3471
|
...candidate,
|
|
@@ -3407,22 +3530,21 @@ function RouterRuntime({
|
|
|
3407
3530
|
if (updateActiveModalFlow(overlayMatch, target, overlayState, "push")) {
|
|
3408
3531
|
return;
|
|
3409
3532
|
}
|
|
3410
|
-
const
|
|
3533
|
+
const initialFlowScreens = seedModalFlowScreens(
|
|
3411
3534
|
overlayMatch,
|
|
3412
3535
|
target.pathname,
|
|
3413
3536
|
target.search,
|
|
3414
|
-
overlayState
|
|
3415
|
-
0,
|
|
3416
|
-
"push"
|
|
3537
|
+
overlayState
|
|
3417
3538
|
);
|
|
3539
|
+
const activeFlowScreen = initialFlowScreens?.[initialFlowScreens.length - 1];
|
|
3418
3540
|
pushModalEntry({
|
|
3419
3541
|
kind: overlayMatch.route.presentation,
|
|
3420
3542
|
route: overlayMatch.route,
|
|
3421
3543
|
params: overlayMatch.params,
|
|
3422
3544
|
pathname: target.pathname,
|
|
3423
3545
|
search: target.search,
|
|
3424
|
-
historyState:
|
|
3425
|
-
flowScreens:
|
|
3546
|
+
historyState: activeFlowScreen?.historyState ?? overlayState,
|
|
3547
|
+
flowScreens: initialFlowScreens
|
|
3426
3548
|
});
|
|
3427
3549
|
return;
|
|
3428
3550
|
}
|
|
@@ -3477,14 +3599,13 @@ function RouterRuntime({
|
|
|
3477
3599
|
if (updateActiveModalFlow(overlayMatch, target, overlayState, "replace")) {
|
|
3478
3600
|
return;
|
|
3479
3601
|
}
|
|
3480
|
-
const
|
|
3602
|
+
const initialFlowScreens = seedModalFlowScreens(
|
|
3481
3603
|
overlayMatch,
|
|
3482
3604
|
target.pathname,
|
|
3483
3605
|
target.search,
|
|
3484
|
-
overlayState
|
|
3485
|
-
0,
|
|
3486
|
-
"replace"
|
|
3606
|
+
overlayState
|
|
3487
3607
|
);
|
|
3608
|
+
const activeFlowScreen = initialFlowScreens?.[initialFlowScreens.length - 1];
|
|
3488
3609
|
pushModalEntry(
|
|
3489
3610
|
{
|
|
3490
3611
|
kind: overlayMatch.route.presentation,
|
|
@@ -3492,8 +3613,8 @@ function RouterRuntime({
|
|
|
3492
3613
|
params: overlayMatch.params,
|
|
3493
3614
|
pathname: target.pathname,
|
|
3494
3615
|
search: target.search,
|
|
3495
|
-
historyState:
|
|
3496
|
-
flowScreens:
|
|
3616
|
+
historyState: activeFlowScreen?.historyState ?? overlayState,
|
|
3617
|
+
flowScreens: initialFlowScreens
|
|
3497
3618
|
},
|
|
3498
3619
|
true
|
|
3499
3620
|
);
|