@tanstack/react-router 1.131.5 → 1.132.0-alpha.0
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/Asset.cjs +2 -2
- package/dist/cjs/Asset.cjs.map +1 -1
- package/dist/cjs/CatchBoundary.cjs.map +1 -1
- package/dist/cjs/ClientOnly.cjs.map +1 -1
- package/dist/cjs/HeadContent.cjs +10 -17
- package/dist/cjs/HeadContent.cjs.map +1 -1
- package/dist/cjs/Match.cjs +37 -44
- package/dist/cjs/Match.cjs.map +1 -1
- package/dist/cjs/Matches.cjs +8 -12
- package/dist/cjs/Matches.cjs.map +1 -1
- package/dist/cjs/RouterProvider.cjs.map +1 -1
- package/dist/cjs/SafeFragment.cjs.map +1 -1
- package/dist/cjs/ScriptOnce.cjs.map +1 -1
- package/dist/cjs/Scripts.cjs +7 -11
- package/dist/cjs/Scripts.cjs.map +1 -1
- package/dist/cjs/ScrollRestoration.cjs +3 -4
- package/dist/cjs/ScrollRestoration.cjs.map +1 -1
- package/dist/cjs/Transitioner.cjs.map +1 -1
- package/dist/cjs/awaited.cjs.map +1 -1
- package/dist/cjs/fileRoute.cjs +8 -8
- package/dist/cjs/fileRoute.cjs.map +1 -1
- package/dist/cjs/index.cjs +0 -12
- package/dist/cjs/index.cjs.map +1 -1
- package/dist/cjs/index.d.cts +1 -4
- package/dist/cjs/lazyRouteComponent.cjs.map +1 -1
- package/dist/cjs/link.cjs +6 -6
- package/dist/cjs/link.cjs.map +1 -1
- package/dist/cjs/matchContext.cjs.map +1 -1
- package/dist/cjs/not-found.cjs +2 -4
- package/dist/cjs/not-found.cjs.map +1 -1
- package/dist/cjs/renderRouteNotFound.cjs.map +1 -1
- package/dist/cjs/route.cjs +21 -21
- package/dist/cjs/route.cjs.map +1 -1
- package/dist/cjs/router.cjs.map +1 -1
- package/dist/cjs/routerContext.cjs.map +1 -1
- package/dist/cjs/scroll-restoration.cjs.map +1 -1
- package/dist/cjs/ssr/RouterClient.cjs.map +1 -1
- package/dist/cjs/ssr/RouterServer.cjs.map +1 -1
- package/dist/cjs/ssr/defaultRenderHandler.cjs.map +1 -1
- package/dist/cjs/ssr/defaultStreamHandler.cjs.map +1 -1
- package/dist/cjs/ssr/renderRouterToStream.cjs.map +1 -1
- package/dist/cjs/ssr/renderRouterToString.cjs.map +1 -1
- package/dist/cjs/typePrimitives.d.cts +6 -0
- package/dist/cjs/useBlocker.cjs +1 -1
- package/dist/cjs/useBlocker.cjs.map +1 -1
- package/dist/cjs/useCanGoBack.cjs.map +1 -1
- package/dist/cjs/useLoaderData.cjs.map +1 -1
- package/dist/cjs/useLoaderDeps.cjs.map +1 -1
- package/dist/cjs/useLocation.cjs +1 -1
- package/dist/cjs/useLocation.cjs.map +1 -1
- package/dist/cjs/useMatch.cjs.map +1 -1
- package/dist/cjs/useNavigate.cjs +2 -2
- package/dist/cjs/useNavigate.cjs.map +1 -1
- package/dist/cjs/useParams.cjs.map +1 -1
- package/dist/cjs/useRouter.cjs +1 -1
- package/dist/cjs/useRouter.cjs.map +1 -1
- package/dist/cjs/useRouterState.cjs +3 -3
- package/dist/cjs/useRouterState.cjs.map +1 -1
- package/dist/cjs/useSearch.cjs.map +1 -1
- package/dist/cjs/utils.cjs.map +1 -1
- package/dist/esm/Asset.js +2 -2
- package/dist/esm/Asset.js.map +1 -1
- package/dist/esm/CatchBoundary.js.map +1 -1
- package/dist/esm/ClientOnly.js.map +1 -1
- package/dist/esm/HeadContent.js +10 -17
- package/dist/esm/HeadContent.js.map +1 -1
- package/dist/esm/Match.js +38 -45
- package/dist/esm/Match.js.map +1 -1
- package/dist/esm/Matches.js +8 -12
- package/dist/esm/Matches.js.map +1 -1
- package/dist/esm/RouterProvider.js.map +1 -1
- package/dist/esm/SafeFragment.js.map +1 -1
- package/dist/esm/ScriptOnce.js.map +1 -1
- package/dist/esm/Scripts.js +7 -11
- package/dist/esm/Scripts.js.map +1 -1
- package/dist/esm/ScrollRestoration.js +3 -4
- package/dist/esm/ScrollRestoration.js.map +1 -1
- package/dist/esm/Transitioner.js.map +1 -1
- package/dist/esm/awaited.js.map +1 -1
- package/dist/esm/fileRoute.js +8 -8
- package/dist/esm/fileRoute.js.map +1 -1
- package/dist/esm/index.d.ts +1 -4
- package/dist/esm/index.js +2 -8
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/lazyRouteComponent.js.map +1 -1
- package/dist/esm/link.js +6 -6
- package/dist/esm/link.js.map +1 -1
- package/dist/esm/matchContext.js.map +1 -1
- package/dist/esm/not-found.js +2 -4
- package/dist/esm/not-found.js.map +1 -1
- package/dist/esm/renderRouteNotFound.js.map +1 -1
- package/dist/esm/route.js +21 -21
- package/dist/esm/route.js.map +1 -1
- package/dist/esm/router.js.map +1 -1
- package/dist/esm/routerContext.js.map +1 -1
- package/dist/esm/scroll-restoration.js.map +1 -1
- package/dist/esm/ssr/RouterClient.js.map +1 -1
- package/dist/esm/ssr/RouterServer.js.map +1 -1
- package/dist/esm/ssr/defaultRenderHandler.js.map +1 -1
- package/dist/esm/ssr/defaultStreamHandler.js.map +1 -1
- package/dist/esm/ssr/renderRouterToStream.js.map +1 -1
- package/dist/esm/ssr/renderRouterToString.js.map +1 -1
- package/dist/esm/typePrimitives.d.ts +6 -0
- package/dist/esm/useBlocker.js +1 -1
- package/dist/esm/useBlocker.js.map +1 -1
- package/dist/esm/useCanGoBack.js.map +1 -1
- package/dist/esm/useLoaderData.js.map +1 -1
- package/dist/esm/useLoaderDeps.js.map +1 -1
- package/dist/esm/useLocation.js +1 -1
- package/dist/esm/useLocation.js.map +1 -1
- package/dist/esm/useMatch.js.map +1 -1
- package/dist/esm/useNavigate.js +2 -2
- package/dist/esm/useNavigate.js.map +1 -1
- package/dist/esm/useParams.js.map +1 -1
- package/dist/esm/useRouter.js +1 -1
- package/dist/esm/useRouter.js.map +1 -1
- package/dist/esm/useRouterState.js +3 -3
- package/dist/esm/useRouterState.js.map +1 -1
- package/dist/esm/useSearch.js.map +1 -1
- package/dist/esm/utils.js.map +1 -1
- package/dist/llms/rules/api.d.ts +1 -1
- package/dist/llms/rules/api.js +1 -0
- package/package.json +3 -3
- package/src/Match.tsx +36 -33
- package/src/index.tsx +0 -5
- package/src/useBlocker.tsx +1 -1
package/dist/llms/rules/api.js
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tanstack/react-router",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.132.0-alpha.0",
|
|
4
4
|
"description": "Modern and scalable routing for React applications",
|
|
5
5
|
"author": "Tanner Linsley",
|
|
6
6
|
"license": "MIT",
|
|
@@ -79,8 +79,8 @@
|
|
|
79
79
|
"isbot": "^5.1.22",
|
|
80
80
|
"tiny-invariant": "^1.3.3",
|
|
81
81
|
"tiny-warning": "^1.0.3",
|
|
82
|
-
"@tanstack/history": "1.
|
|
83
|
-
"@tanstack/router-core": "1.
|
|
82
|
+
"@tanstack/history": "1.132.0-alpha.0",
|
|
83
|
+
"@tanstack/router-core": "1.132.0-alpha.0"
|
|
84
84
|
},
|
|
85
85
|
"devDependencies": {
|
|
86
86
|
"@testing-library/jest-dom": "^6.6.3",
|
package/src/Match.tsx
CHANGED
|
@@ -6,6 +6,7 @@ import {
|
|
|
6
6
|
getLocationChangeInfo,
|
|
7
7
|
isNotFound,
|
|
8
8
|
isRedirect,
|
|
9
|
+
pick,
|
|
9
10
|
rootRouteId,
|
|
10
11
|
} from '@tanstack/router-core'
|
|
11
12
|
import { CatchBoundary, ErrorComponent } from './CatchBoundary'
|
|
@@ -36,11 +37,7 @@ export const Match = React.memo(function MatchImpl({
|
|
|
36
37
|
match,
|
|
37
38
|
`Could not find match for matchId "${matchId}". Please file an issue!`,
|
|
38
39
|
)
|
|
39
|
-
return
|
|
40
|
-
routeId: match.routeId,
|
|
41
|
-
ssr: match.ssr,
|
|
42
|
-
_displayPending: match._displayPending,
|
|
43
|
-
}
|
|
40
|
+
return pick(match, ['routeId', 'ssr', '_displayPending'])
|
|
44
41
|
},
|
|
45
42
|
structuralSharing: true as any,
|
|
46
43
|
})
|
|
@@ -189,7 +186,8 @@ export const MatchInner = React.memo(function MatchInnerImpl({
|
|
|
189
186
|
|
|
190
187
|
const { match, key, routeId } = useRouterState({
|
|
191
188
|
select: (s) => {
|
|
192
|
-
const
|
|
189
|
+
const matchIndex = s.matches.findIndex((d) => d.id === matchId)
|
|
190
|
+
const match = s.matches[matchIndex]!
|
|
193
191
|
const routeId = match.routeId as string
|
|
194
192
|
|
|
195
193
|
const remountFn =
|
|
@@ -206,13 +204,13 @@ export const MatchInner = React.memo(function MatchInnerImpl({
|
|
|
206
204
|
return {
|
|
207
205
|
key,
|
|
208
206
|
routeId,
|
|
209
|
-
match:
|
|
210
|
-
id
|
|
211
|
-
status
|
|
212
|
-
error
|
|
213
|
-
_forcePending
|
|
214
|
-
_displayPending
|
|
215
|
-
|
|
207
|
+
match: pick(match, [
|
|
208
|
+
'id',
|
|
209
|
+
'status',
|
|
210
|
+
'error',
|
|
211
|
+
'_forcePending',
|
|
212
|
+
'_displayPending',
|
|
213
|
+
]),
|
|
216
214
|
}
|
|
217
215
|
},
|
|
218
216
|
structuralSharing: true as any,
|
|
@@ -229,11 +227,11 @@ export const MatchInner = React.memo(function MatchInnerImpl({
|
|
|
229
227
|
}, [key, route.options.component, router.options.defaultComponent])
|
|
230
228
|
|
|
231
229
|
if (match._displayPending) {
|
|
232
|
-
throw router.getMatch(match.id)?.
|
|
230
|
+
throw router.getMatch(match.id)?.displayPendingPromise
|
|
233
231
|
}
|
|
234
232
|
|
|
235
233
|
if (match._forcePending) {
|
|
236
|
-
throw router.getMatch(match.id)?.
|
|
234
|
+
throw router.getMatch(match.id)?.minPendingPromise
|
|
237
235
|
}
|
|
238
236
|
|
|
239
237
|
// see also hydrate() in packages/router-core/src/ssr/ssr-client.ts
|
|
@@ -241,26 +239,31 @@ export const MatchInner = React.memo(function MatchInnerImpl({
|
|
|
241
239
|
// We're pending, and if we have a minPendingMs, we need to wait for it
|
|
242
240
|
const pendingMinMs =
|
|
243
241
|
route.options.pendingMinMs ?? router.options.defaultPendingMinMs
|
|
244
|
-
if (pendingMinMs) {
|
|
245
|
-
const routerMatch = router.getMatch(match.id)
|
|
246
|
-
if (routerMatch && !routerMatch._nonReactive.minPendingPromise) {
|
|
247
|
-
// Create a promise that will resolve after the minPendingMs
|
|
248
|
-
if (!router.isServer) {
|
|
249
|
-
const minPendingPromise = createControlledPromise<void>()
|
|
250
|
-
|
|
251
|
-
Promise.resolve().then(() => {
|
|
252
|
-
routerMatch._nonReactive.minPendingPromise = minPendingPromise
|
|
253
|
-
})
|
|
254
242
|
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
243
|
+
if (pendingMinMs && !router.getMatch(match.id)?.minPendingPromise) {
|
|
244
|
+
// Create a promise that will resolve after the minPendingMs
|
|
245
|
+
if (!router.isServer) {
|
|
246
|
+
const minPendingPromise = createControlledPromise<void>()
|
|
247
|
+
|
|
248
|
+
Promise.resolve().then(() => {
|
|
249
|
+
router.updateMatch(match.id, (prev) => ({
|
|
250
|
+
...prev,
|
|
251
|
+
minPendingPromise,
|
|
252
|
+
}))
|
|
253
|
+
})
|
|
254
|
+
|
|
255
|
+
setTimeout(() => {
|
|
256
|
+
minPendingPromise.resolve()
|
|
257
|
+
|
|
258
|
+
// We've handled the minPendingPromise, so we can delete it
|
|
259
|
+
router.updateMatch(match.id, (prev) => ({
|
|
260
|
+
...prev,
|
|
261
|
+
minPendingPromise: undefined,
|
|
262
|
+
}))
|
|
263
|
+
}, pendingMinMs)
|
|
261
264
|
}
|
|
262
265
|
}
|
|
263
|
-
throw router.getMatch(match.id)?.
|
|
266
|
+
throw router.getMatch(match.id)?.loadPromise
|
|
264
267
|
}
|
|
265
268
|
|
|
266
269
|
if (match.status === 'notFound') {
|
|
@@ -277,7 +280,7 @@ export const MatchInner = React.memo(function MatchInnerImpl({
|
|
|
277
280
|
// false,
|
|
278
281
|
// 'Tried to render a redirected route match! This is a weird circumstance, please file an issue!',
|
|
279
282
|
// )
|
|
280
|
-
throw router.getMatch(match.id)?.
|
|
283
|
+
throw router.getMatch(match.id)?.loadPromise
|
|
281
284
|
}
|
|
282
285
|
|
|
283
286
|
if (match.status === 'error') {
|
package/src/index.tsx
CHANGED
|
@@ -1,6 +1,3 @@
|
|
|
1
|
-
export { default as invariant } from 'tiny-invariant'
|
|
2
|
-
export { default as warning } from 'tiny-warning'
|
|
3
|
-
|
|
4
1
|
export {
|
|
5
2
|
defer,
|
|
6
3
|
TSR_DEFERRED_PROMISE,
|
|
@@ -24,14 +21,12 @@ export {
|
|
|
24
21
|
defaultStringifySearch,
|
|
25
22
|
parseSearchWith,
|
|
26
23
|
stringifySearchWith,
|
|
27
|
-
escapeJSON, // SSR
|
|
28
24
|
pick,
|
|
29
25
|
functionalUpdate,
|
|
30
26
|
replaceEqualDeep,
|
|
31
27
|
isPlainObject,
|
|
32
28
|
isPlainArray,
|
|
33
29
|
deepEqual,
|
|
34
|
-
shallow,
|
|
35
30
|
createControlledPromise,
|
|
36
31
|
retainSearchParams,
|
|
37
32
|
stripSearchParams,
|
package/src/useBlocker.tsx
CHANGED
|
@@ -176,7 +176,7 @@ export function useBlocker(
|
|
|
176
176
|
function getLocation(
|
|
177
177
|
location: HistoryLocation,
|
|
178
178
|
): AnyShouldBlockFnLocation {
|
|
179
|
-
const parsedLocation = router.parseLocation(location)
|
|
179
|
+
const parsedLocation = router.parseLocation(undefined, location)
|
|
180
180
|
const matchedRoutes = router.getMatchedRoutes(
|
|
181
181
|
parsedLocation.pathname,
|
|
182
182
|
undefined,
|