@tanstack/react-router 1.22.5 → 1.22.6
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/CatchBoundary.cjs +1 -2
- package/dist/cjs/CatchBoundary.cjs.map +1 -1
- package/dist/cjs/Matches.cjs +12 -18
- package/dist/cjs/Matches.cjs.map +1 -1
- package/dist/cjs/Matches.d.cts +15 -15
- package/dist/cjs/RouterProvider.cjs +16 -15
- package/dist/cjs/RouterProvider.cjs.map +1 -1
- package/dist/cjs/RouterProvider.d.cts +6 -6
- package/dist/cjs/awaited.cjs +1 -1
- package/dist/cjs/awaited.cjs.map +1 -1
- package/dist/cjs/awaited.d.cts +1 -1
- package/dist/cjs/defer.cjs.map +1 -1
- package/dist/cjs/fileRoute.cjs +1 -1
- package/dist/cjs/fileRoute.cjs.map +1 -1
- package/dist/cjs/fileRoute.d.cts +17 -17
- package/dist/cjs/lazyRouteComponent.cjs.map +1 -1
- package/dist/cjs/lazyRouteComponent.d.cts +1 -1
- package/dist/cjs/link.cjs +10 -11
- package/dist/cjs/link.cjs.map +1 -1
- package/dist/cjs/link.d.cts +16 -13
- package/dist/cjs/location.d.cts +2 -2
- package/dist/cjs/not-found.cjs.map +1 -1
- package/dist/cjs/not-found.d.cts +2 -2
- package/dist/cjs/path.cjs +2 -2
- package/dist/cjs/path.cjs.map +1 -1
- package/dist/cjs/path.d.cts +4 -4
- package/dist/cjs/qss.cjs +4 -3
- package/dist/cjs/qss.cjs.map +1 -1
- package/dist/cjs/redirects.cjs.map +1 -1
- package/dist/cjs/redirects.d.cts +5 -5
- package/dist/cjs/route.cjs.map +1 -1
- package/dist/cjs/route.d.cts +34 -36
- package/dist/cjs/routeInfo.d.cts +5 -5
- package/dist/cjs/router.cjs +63 -66
- package/dist/cjs/router.cjs.map +1 -1
- package/dist/cjs/router.d.cts +28 -28
- package/dist/cjs/routerContext.cjs +1 -1
- package/dist/cjs/routerContext.cjs.map +1 -1
- package/dist/cjs/routerContext.d.cts +1 -1
- package/dist/cjs/scroll-restoration.cjs +7 -9
- package/dist/cjs/scroll-restoration.cjs.map +1 -1
- package/dist/cjs/scroll-restoration.d.cts +1 -1
- package/dist/cjs/searchParams.cjs +10 -12
- package/dist/cjs/searchParams.cjs.map +1 -1
- package/dist/cjs/searchParams.d.cts +1 -1
- package/dist/cjs/useBlocker.cjs.map +1 -1
- package/dist/cjs/useBlocker.d.cts +2 -2
- package/dist/cjs/useNavigate.cjs +1 -1
- package/dist/cjs/useNavigate.cjs.map +1 -1
- package/dist/cjs/useNavigate.d.cts +4 -4
- package/dist/cjs/useParams.cjs +1 -1
- package/dist/cjs/useParams.cjs.map +1 -1
- package/dist/cjs/useParams.d.cts +5 -5
- package/dist/cjs/useRouteContext.cjs +1 -1
- package/dist/cjs/useRouteContext.cjs.map +1 -1
- package/dist/cjs/useRouteContext.d.cts +4 -4
- package/dist/cjs/useRouter.cjs.map +1 -1
- package/dist/cjs/useRouter.d.cts +2 -2
- package/dist/cjs/useRouterState.cjs.map +1 -1
- package/dist/cjs/useRouterState.d.cts +2 -2
- package/dist/cjs/useSearch.cjs +1 -1
- package/dist/cjs/useSearch.cjs.map +1 -1
- package/dist/cjs/useSearch.d.cts +4 -4
- package/dist/cjs/utils.cjs +2 -2
- package/dist/cjs/utils.cjs.map +1 -1
- package/dist/cjs/utils.d.cts +13 -11
- package/dist/esm/CatchBoundary.js +1 -2
- package/dist/esm/CatchBoundary.js.map +1 -1
- package/dist/esm/Matches.d.ts +15 -15
- package/dist/esm/Matches.js +12 -18
- package/dist/esm/Matches.js.map +1 -1
- package/dist/esm/RouterProvider.d.ts +6 -6
- package/dist/esm/RouterProvider.js +16 -15
- package/dist/esm/RouterProvider.js.map +1 -1
- package/dist/esm/awaited.d.ts +1 -1
- package/dist/esm/awaited.js +1 -1
- package/dist/esm/awaited.js.map +1 -1
- package/dist/esm/defer.js.map +1 -1
- package/dist/esm/fileRoute.d.ts +17 -17
- package/dist/esm/fileRoute.js +1 -1
- package/dist/esm/fileRoute.js.map +1 -1
- package/dist/esm/lazyRouteComponent.d.ts +1 -1
- package/dist/esm/lazyRouteComponent.js.map +1 -1
- package/dist/esm/link.d.ts +16 -13
- package/dist/esm/link.js +10 -11
- package/dist/esm/link.js.map +1 -1
- package/dist/esm/location.d.ts +2 -2
- package/dist/esm/not-found.d.ts +2 -2
- package/dist/esm/not-found.js.map +1 -1
- package/dist/esm/path.d.ts +4 -4
- package/dist/esm/path.js +2 -2
- package/dist/esm/path.js.map +1 -1
- package/dist/esm/qss.js +4 -3
- package/dist/esm/qss.js.map +1 -1
- package/dist/esm/redirects.d.ts +5 -5
- package/dist/esm/redirects.js.map +1 -1
- package/dist/esm/route.d.ts +34 -36
- package/dist/esm/route.js.map +1 -1
- package/dist/esm/routeInfo.d.ts +5 -5
- package/dist/esm/router.d.ts +28 -28
- package/dist/esm/router.js +63 -66
- package/dist/esm/router.js.map +1 -1
- package/dist/esm/routerContext.d.ts +1 -1
- package/dist/esm/routerContext.js +1 -1
- package/dist/esm/routerContext.js.map +1 -1
- package/dist/esm/scroll-restoration.d.ts +1 -1
- package/dist/esm/scroll-restoration.js +7 -9
- package/dist/esm/scroll-restoration.js.map +1 -1
- package/dist/esm/searchParams.d.ts +1 -1
- package/dist/esm/searchParams.js +10 -12
- package/dist/esm/searchParams.js.map +1 -1
- package/dist/esm/useBlocker.d.ts +2 -2
- package/dist/esm/useBlocker.js.map +1 -1
- package/dist/esm/useNavigate.d.ts +4 -4
- package/dist/esm/useNavigate.js +1 -1
- package/dist/esm/useNavigate.js.map +1 -1
- package/dist/esm/useParams.d.ts +5 -5
- package/dist/esm/useParams.js +1 -1
- package/dist/esm/useParams.js.map +1 -1
- package/dist/esm/useRouteContext.d.ts +4 -4
- package/dist/esm/useRouteContext.js +1 -1
- package/dist/esm/useRouteContext.js.map +1 -1
- package/dist/esm/useRouter.d.ts +2 -2
- package/dist/esm/useRouter.js.map +1 -1
- package/dist/esm/useRouterState.d.ts +2 -2
- package/dist/esm/useRouterState.js.map +1 -1
- package/dist/esm/useSearch.d.ts +4 -4
- package/dist/esm/useSearch.js +1 -1
- package/dist/esm/useSearch.js.map +1 -1
- package/dist/esm/utils.d.ts +13 -11
- package/dist/esm/utils.js +2 -2
- package/dist/esm/utils.js.map +1 -1
- package/package.json +3 -2
- package/src/CatchBoundary.tsx +1 -1
- package/src/Matches.tsx +41 -48
- package/src/RouterProvider.tsx +22 -16
- package/src/awaited.tsx +3 -3
- package/src/defer.ts +1 -0
- package/src/fileRoute.ts +53 -53
- package/src/history.ts +1 -1
- package/src/lazyRouteComponent.tsx +2 -1
- package/src/link.tsx +50 -42
- package/src/location.ts +2 -2
- package/src/not-found.tsx +3 -2
- package/src/path.ts +8 -8
- package/src/qss.ts +4 -5
- package/src/redirects.ts +5 -5
- package/src/route.ts +73 -67
- package/src/routeInfo.ts +8 -6
- package/src/router.ts +150 -145
- package/src/routerContext.tsx +2 -2
- package/src/scroll-restoration.tsx +9 -12
- package/src/searchParams.ts +11 -13
- package/src/useBlocker.tsx +3 -3
- package/src/useNavigate.tsx +7 -5
- package/src/useParams.tsx +6 -6
- package/src/useRouteContext.ts +7 -8
- package/src/useRouter.tsx +2 -2
- package/src/useRouterState.tsx +2 -2
- package/src/useSearch.tsx +7 -6
- package/src/utils.ts +36 -24
package/dist/cjs/router.cjs
CHANGED
|
@@ -2,15 +2,15 @@
|
|
|
2
2
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
3
|
const history = require("@tanstack/history");
|
|
4
4
|
const reactStore = require("@tanstack/react-store");
|
|
5
|
+
const invariant = require("tiny-invariant");
|
|
6
|
+
const warning = require("tiny-warning");
|
|
5
7
|
const route = require("./route.cjs");
|
|
6
8
|
const searchParams = require("./searchParams.cjs");
|
|
7
9
|
const utils = require("./utils.cjs");
|
|
8
10
|
const RouterProvider = require("./RouterProvider.cjs");
|
|
9
11
|
const path = require("./path.cjs");
|
|
10
|
-
const invariant = require("tiny-invariant");
|
|
11
12
|
const redirects = require("./redirects.cjs");
|
|
12
13
|
const notFound = require("./not-found.cjs");
|
|
13
|
-
const warning = require("tiny-warning");
|
|
14
14
|
const componentTypes = [
|
|
15
15
|
"component",
|
|
16
16
|
"errorComponent",
|
|
@@ -52,7 +52,10 @@ class Router {
|
|
|
52
52
|
this.basepath = `/${path.trimPath(newOptions.basepath)}`;
|
|
53
53
|
}
|
|
54
54
|
}
|
|
55
|
-
if (
|
|
55
|
+
if (
|
|
56
|
+
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
|
|
57
|
+
!this.history || this.options.history && this.options.history !== this.history
|
|
58
|
+
) {
|
|
56
59
|
this.history = this.options.history ?? (typeof document !== "undefined" ? history.createBrowserHistory() : history.createMemoryHistory({
|
|
57
60
|
initialEntries: [this.options.basepath || "/"]
|
|
58
61
|
}));
|
|
@@ -107,7 +110,8 @@ class Router {
|
|
|
107
110
|
};
|
|
108
111
|
recurseRoutes([this.routeTree]);
|
|
109
112
|
const scoredRoutes = [];
|
|
110
|
-
Object.values(this.routesById)
|
|
113
|
+
const routes = Object.values(this.routesById);
|
|
114
|
+
routes.forEach((d, i) => {
|
|
111
115
|
var _a;
|
|
112
116
|
if (d.isRoot || !d.path) {
|
|
113
117
|
return;
|
|
@@ -117,14 +121,14 @@ class Router {
|
|
|
117
121
|
while (parsed.length > 1 && ((_a = parsed[0]) == null ? void 0 : _a.value) === "/") {
|
|
118
122
|
parsed.shift();
|
|
119
123
|
}
|
|
120
|
-
const scores = parsed.map((
|
|
121
|
-
if (
|
|
124
|
+
const scores = parsed.map((segment) => {
|
|
125
|
+
if (segment.value === "/") {
|
|
122
126
|
return 0.75;
|
|
123
127
|
}
|
|
124
|
-
if (
|
|
128
|
+
if (segment.type === "param") {
|
|
125
129
|
return 0.5;
|
|
126
130
|
}
|
|
127
|
-
if (
|
|
131
|
+
if (segment.type === "wildcard") {
|
|
128
132
|
return 0.25;
|
|
129
133
|
}
|
|
130
134
|
return 1;
|
|
@@ -191,7 +195,7 @@ class Router {
|
|
|
191
195
|
};
|
|
192
196
|
};
|
|
193
197
|
const location = parse(this.history.location);
|
|
194
|
-
|
|
198
|
+
const { __tempLocation, __tempKey } = location.state;
|
|
195
199
|
if (__tempLocation && (!__tempKey || __tempKey === this.tempLocationKey)) {
|
|
196
200
|
const parsedTempLocation = parse(__tempLocation);
|
|
197
201
|
parsedTempLocation.state.key = location.state.key;
|
|
@@ -208,7 +212,7 @@ class Router {
|
|
|
208
212
|
};
|
|
209
213
|
this.matchRoutes = (pathname, locationSearch, opts) => {
|
|
210
214
|
let routeParams = {};
|
|
211
|
-
|
|
215
|
+
const foundRoute = this.flatRoutes.find((route2) => {
|
|
212
216
|
const matchedParams = path.matchPathname(
|
|
213
217
|
this.basepath,
|
|
214
218
|
path.trimPathRight(pathname),
|
|
@@ -225,7 +229,7 @@ class Router {
|
|
|
225
229
|
return false;
|
|
226
230
|
});
|
|
227
231
|
let routeCursor = foundRoute || this.routesById[route.rootRouteId];
|
|
228
|
-
|
|
232
|
+
const matchedRoutes = [routeCursor];
|
|
229
233
|
let isGlobalNotFound = false;
|
|
230
234
|
if (
|
|
231
235
|
// If we found a route, and it's not an index route and we have left over path
|
|
@@ -240,10 +244,9 @@ class Router {
|
|
|
240
244
|
isGlobalNotFound = true;
|
|
241
245
|
}
|
|
242
246
|
}
|
|
243
|
-
while (routeCursor
|
|
247
|
+
while (routeCursor.parentRoute) {
|
|
244
248
|
routeCursor = routeCursor.parentRoute;
|
|
245
|
-
|
|
246
|
-
matchedRoutes.unshift(routeCursor);
|
|
249
|
+
matchedRoutes.unshift(routeCursor);
|
|
247
250
|
}
|
|
248
251
|
const globalNotFoundRouteId = (() => {
|
|
249
252
|
if (!isGlobalNotFound) {
|
|
@@ -285,7 +288,7 @@ class Router {
|
|
|
285
288
|
const parentSearch = (parentMatch == null ? void 0 : parentMatch.search) ?? locationSearch;
|
|
286
289
|
try {
|
|
287
290
|
const validator = typeof route2.options.validateSearch === "object" ? route2.options.validateSearch.parse : route2.options.validateSearch;
|
|
288
|
-
|
|
291
|
+
const search = (validator == null ? void 0 : validator(parentSearch)) ?? {};
|
|
289
292
|
return [
|
|
290
293
|
{
|
|
291
294
|
...parentSearch,
|
|
@@ -294,13 +297,13 @@ class Router {
|
|
|
294
297
|
void 0
|
|
295
298
|
];
|
|
296
299
|
} catch (err) {
|
|
297
|
-
const
|
|
300
|
+
const searchParamError = new SearchParamError(err.message, {
|
|
298
301
|
cause: err
|
|
299
302
|
});
|
|
300
303
|
if (opts == null ? void 0 : opts.throwOnError) {
|
|
301
|
-
throw
|
|
304
|
+
throw searchParamError;
|
|
302
305
|
}
|
|
303
|
-
return [parentSearch,
|
|
306
|
+
return [parentSearch, searchParamError];
|
|
304
307
|
}
|
|
305
308
|
})();
|
|
306
309
|
const loaderDeps = ((_b = (_a = route2.options).loaderDeps) == null ? void 0 : _b.call(_a, {
|
|
@@ -316,7 +319,7 @@ class Router {
|
|
|
316
319
|
params: routeParams,
|
|
317
320
|
leaveWildcards: true
|
|
318
321
|
}) + loaderDepsHash;
|
|
319
|
-
|
|
322
|
+
const existingMatch = RouterProvider.getRouteMatch(this.state, matchId);
|
|
320
323
|
const cause = this.state.matches.find((d) => d.id === matchId) ? "stay" : "enter";
|
|
321
324
|
const match = existingMatch ? {
|
|
322
325
|
...existingMatch,
|
|
@@ -371,13 +374,16 @@ class Router {
|
|
|
371
374
|
const build = (dest = {}, matches) => {
|
|
372
375
|
var _a, _b, _c;
|
|
373
376
|
const relevantMatches = this.state.pendingMatches || this.state.matches;
|
|
374
|
-
const fromSearch = (
|
|
377
|
+
const fromSearch = (
|
|
378
|
+
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
|
|
379
|
+
((_a = relevantMatches[relevantMatches.length - 1]) == null ? void 0 : _a.search) || this.latestLocation.search
|
|
380
|
+
);
|
|
375
381
|
const fromMatches = this.matchRoutes(
|
|
376
382
|
this.latestLocation.pathname,
|
|
377
383
|
fromSearch
|
|
378
384
|
);
|
|
379
385
|
const stayingMatches = matches == null ? void 0 : matches.filter(
|
|
380
|
-
(d) => fromMatches
|
|
386
|
+
(d) => fromMatches.find((e) => e.routeId === d.routeId)
|
|
381
387
|
);
|
|
382
388
|
const fromRoute = this.looseRoutesById[(_b = utils.last(fromMatches)) == null ? void 0 : _b.routeId];
|
|
383
389
|
let pathname = dest.to ? this.resolvePathWithBase(
|
|
@@ -403,12 +409,9 @@ class Router {
|
|
|
403
409
|
const postSearchFilters = (stayingMatches == null ? void 0 : stayingMatches.map(
|
|
404
410
|
(match) => this.looseRoutesById[match.routeId].options.postSearchFilters ?? []
|
|
405
411
|
).flat().filter(Boolean)) ?? [];
|
|
406
|
-
const preFilteredSearch =
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
) : fromSearch;
|
|
410
|
-
const destSearch = dest.search === true ? preFilteredSearch : dest.search ? utils.functionalUpdate(dest.search, preFilteredSearch) ?? {} : (preSearchFilters == null ? void 0 : preSearchFilters.length) ? preFilteredSearch : {};
|
|
411
|
-
const postFilteredSearch = (postSearchFilters == null ? void 0 : postSearchFilters.length) ? postSearchFilters.reduce((prev, next) => next(prev), destSearch) : destSearch;
|
|
412
|
+
const preFilteredSearch = preSearchFilters.length ? preSearchFilters.reduce((prev, next) => next(prev), fromSearch) : fromSearch;
|
|
413
|
+
const destSearch = dest.search === true ? preFilteredSearch : dest.search ? utils.functionalUpdate(dest.search, preFilteredSearch) : preSearchFilters.length ? preFilteredSearch : {};
|
|
414
|
+
const postFilteredSearch = postSearchFilters.length ? postSearchFilters.reduce((prev, next) => next(prev), destSearch) : destSearch;
|
|
412
415
|
const search = utils.replaceEqualDeep(fromSearch, postFilteredSearch);
|
|
413
416
|
const searchStr = this.options.stringifySearch(search);
|
|
414
417
|
const hash = dest.hash === true ? this.latestLocation.hash : dest.hash ? utils.functionalUpdate(dest.hash, this.latestLocation.hash) : void 0;
|
|
@@ -427,11 +430,11 @@ class Router {
|
|
|
427
430
|
};
|
|
428
431
|
const buildWithMatches = (dest = {}, maskedDest) => {
|
|
429
432
|
var _a;
|
|
430
|
-
|
|
433
|
+
const next = build(dest);
|
|
431
434
|
let maskedNext = maskedDest ? build(maskedDest) : void 0;
|
|
432
435
|
if (!maskedNext) {
|
|
433
436
|
let params = {};
|
|
434
|
-
|
|
437
|
+
const foundMask = (_a = this.options.routeMasks) == null ? void 0 : _a.find((d) => {
|
|
435
438
|
const match = path.matchPathname(this.basepath, next.pathname, {
|
|
436
439
|
to: d.from,
|
|
437
440
|
caseSensitive: false,
|
|
@@ -656,6 +659,7 @@ class Router {
|
|
|
656
659
|
const matchPromises = [];
|
|
657
660
|
validResolvedMatches.forEach((match, index) => {
|
|
658
661
|
matchPromises.push(
|
|
662
|
+
// eslint-disable-next-line no-async-promise-executor
|
|
659
663
|
new Promise(async (resolve, reject) => {
|
|
660
664
|
var _a2;
|
|
661
665
|
const parentMatchPromise = matchPromises[index - 1];
|
|
@@ -750,12 +754,13 @@ class Router {
|
|
|
750
754
|
meta,
|
|
751
755
|
headers
|
|
752
756
|
};
|
|
753
|
-
} catch (
|
|
757
|
+
} catch (e) {
|
|
758
|
+
let error = e;
|
|
754
759
|
if (latestPromise = checkLatest())
|
|
755
760
|
return await latestPromise;
|
|
756
|
-
handleError(
|
|
761
|
+
handleError(e);
|
|
757
762
|
try {
|
|
758
|
-
(_j = (_i = route2.options).onError) == null ? void 0 : _j.call(_i,
|
|
763
|
+
(_j = (_i = route2.options).onError) == null ? void 0 : _j.call(_i, e);
|
|
759
764
|
} catch (onErrorError) {
|
|
760
765
|
error = onErrorError;
|
|
761
766
|
handleError(onErrorError);
|
|
@@ -770,10 +775,9 @@ class Router {
|
|
|
770
775
|
updateMatch(match);
|
|
771
776
|
};
|
|
772
777
|
const age = Date.now() - match.updatedAt;
|
|
773
|
-
|
|
774
|
-
let shouldReload;
|
|
778
|
+
const staleAge = preload ? route2.options.preloadStaleTime ?? this.options.defaultPreloadStaleTime ?? 3e4 : route2.options.staleTime ?? this.options.defaultStaleTime ?? 0;
|
|
775
779
|
const shouldReloadOption = route2.options.shouldReload;
|
|
776
|
-
shouldReload = typeof shouldReloadOption === "function" ? shouldReloadOption(loaderContext) : shouldReloadOption;
|
|
780
|
+
const shouldReload = typeof shouldReloadOption === "function" ? shouldReloadOption(loaderContext) : shouldReloadOption;
|
|
777
781
|
matches[index] = match = {
|
|
778
782
|
...match,
|
|
779
783
|
preload: !!preload && !this.state.matches.find((d) => d.id === match.id)
|
|
@@ -946,7 +950,7 @@ class Router {
|
|
|
946
950
|
return this.latestLoadPromise;
|
|
947
951
|
};
|
|
948
952
|
this.resolveRedirect = (err) => {
|
|
949
|
-
|
|
953
|
+
const redirect = err;
|
|
950
954
|
if (!redirect.href) {
|
|
951
955
|
redirect.href = this.buildLocation(redirect).href;
|
|
952
956
|
}
|
|
@@ -968,18 +972,17 @@ class Router {
|
|
|
968
972
|
});
|
|
969
973
|
};
|
|
970
974
|
this.preloadRoute = async (opts) => {
|
|
971
|
-
|
|
972
|
-
let next = this.buildLocation(opts);
|
|
975
|
+
const next = this.buildLocation(opts);
|
|
973
976
|
let matches = this.matchRoutes(next.pathname, next.search, {
|
|
974
977
|
throwOnError: true,
|
|
975
978
|
preload: true
|
|
976
979
|
});
|
|
977
980
|
const loadedMatchIds = Object.fromEntries(
|
|
978
|
-
|
|
981
|
+
[
|
|
979
982
|
...this.state.matches,
|
|
980
983
|
...this.state.pendingMatches ?? [],
|
|
981
984
|
...this.state.cachedMatches
|
|
982
|
-
]
|
|
985
|
+
].map((d) => [d.id, true])
|
|
983
986
|
);
|
|
984
987
|
this.__store.batch(() => {
|
|
985
988
|
matches.forEach((match) => {
|
|
@@ -1019,9 +1022,6 @@ class Router {
|
|
|
1019
1022
|
return false;
|
|
1020
1023
|
}
|
|
1021
1024
|
const baseLocation = (opts == null ? void 0 : opts.pending) ? this.latestLocation : this.state.resolvedLocation;
|
|
1022
|
-
if (!baseLocation) {
|
|
1023
|
-
return false;
|
|
1024
|
-
}
|
|
1025
1025
|
const match = path.matchPathname(this.basepath, baseLocation.pathname, {
|
|
1026
1026
|
...opts,
|
|
1027
1027
|
to: next.pathname
|
|
@@ -1115,7 +1115,7 @@ class Router {
|
|
|
1115
1115
|
this.dehydratedData = ctx.payload;
|
|
1116
1116
|
(_c = (_b = this.options).hydrate) == null ? void 0 : _c.call(_b, ctx.payload);
|
|
1117
1117
|
const dehydratedState = ctx.router.state;
|
|
1118
|
-
|
|
1118
|
+
const matches = this.matchRoutes(
|
|
1119
1119
|
this.state.location.pathname,
|
|
1120
1120
|
this.state.location.search
|
|
1121
1121
|
).map((match) => {
|
|
@@ -1127,23 +1127,20 @@ class Router {
|
|
|
1127
1127
|
dehydratedMatch,
|
|
1128
1128
|
`Could not find a client-side match for dehydrated match with id: ${match.id}!`
|
|
1129
1129
|
);
|
|
1130
|
-
|
|
1131
|
-
|
|
1132
|
-
|
|
1133
|
-
|
|
1134
|
-
|
|
1135
|
-
|
|
1136
|
-
|
|
1137
|
-
|
|
1138
|
-
|
|
1139
|
-
|
|
1140
|
-
|
|
1141
|
-
|
|
1142
|
-
|
|
1143
|
-
|
|
1144
|
-
};
|
|
1145
|
-
}
|
|
1146
|
-
return match;
|
|
1130
|
+
const route2 = this.looseRoutesById[match.routeId];
|
|
1131
|
+
const assets = dehydratedMatch.status === "notFound" || dehydratedMatch.status === "redirected" ? {} : {
|
|
1132
|
+
meta: (_b2 = (_a2 = route2.options).meta) == null ? void 0 : _b2.call(_a2, {
|
|
1133
|
+
params: match.params,
|
|
1134
|
+
loaderData: dehydratedMatch.loaderData
|
|
1135
|
+
}),
|
|
1136
|
+
links: (_d = (_c2 = route2.options).links) == null ? void 0 : _d.call(_c2),
|
|
1137
|
+
scripts: (_f = (_e = route2.options).scripts) == null ? void 0 : _f.call(_e)
|
|
1138
|
+
};
|
|
1139
|
+
return {
|
|
1140
|
+
...match,
|
|
1141
|
+
...dehydratedMatch,
|
|
1142
|
+
...assets
|
|
1143
|
+
};
|
|
1147
1144
|
});
|
|
1148
1145
|
this.__store.setState((s) => {
|
|
1149
1146
|
return {
|
|
@@ -1159,13 +1156,13 @@ class Router {
|
|
|
1159
1156
|
);
|
|
1160
1157
|
let routeCursor = (err.global ? this.looseRoutesById[route.rootRouteId] : this.looseRoutesById[err.routeId]) || this.looseRoutesById[route.rootRouteId];
|
|
1161
1158
|
while (!routeCursor.options.notFoundComponent && !this.options.defaultNotFoundComponent && routeCursor.id !== route.rootRouteId) {
|
|
1162
|
-
routeCursor = routeCursor
|
|
1159
|
+
routeCursor = routeCursor.parentRoute;
|
|
1163
1160
|
invariant(
|
|
1164
1161
|
routeCursor,
|
|
1165
1162
|
"Found invalid route tree while trying to find not-found handler."
|
|
1166
1163
|
);
|
|
1167
1164
|
}
|
|
1168
|
-
|
|
1165
|
+
const match = matchesByRouteId[routeCursor.id];
|
|
1169
1166
|
invariant(match, "Could not find match for route: " + routeCursor.id);
|
|
1170
1167
|
Object.assign(match, {
|
|
1171
1168
|
status: "notFound",
|
|
@@ -1184,9 +1181,9 @@ class Router {
|
|
|
1184
1181
|
defaultPendingMinMs: 500,
|
|
1185
1182
|
context: void 0,
|
|
1186
1183
|
...options,
|
|
1187
|
-
stringifySearch:
|
|
1188
|
-
parseSearch:
|
|
1189
|
-
transformer:
|
|
1184
|
+
stringifySearch: options.stringifySearch ?? searchParams.defaultStringifySearch,
|
|
1185
|
+
parseSearch: options.parseSearch ?? searchParams.defaultParseSearch,
|
|
1186
|
+
transformer: options.transformer ?? JSON
|
|
1190
1187
|
});
|
|
1191
1188
|
if (typeof document !== "undefined") {
|
|
1192
1189
|
window.__TSR__ROUTER__ = this;
|