@tanstack/react-router 1.57.18 → 1.58.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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tanstack/react-router",
3
- "version": "1.57.18",
3
+ "version": "1.58.2",
4
4
  "description": "Modern and scalable routing for React applications",
5
5
  "author": "Tanner Linsley",
6
6
  "license": "MIT",
@@ -66,7 +66,7 @@
66
66
  "peerDependencies": {
67
67
  "react": ">=18",
68
68
  "react-dom": ">=18",
69
- "@tanstack/router-generator": "1.57.15"
69
+ "@tanstack/router-generator": "1.58.1"
70
70
  },
71
71
  "peerDependenciesMeta": {
72
72
  "@tanstack/router-generator": {
package/src/router.ts CHANGED
@@ -532,6 +532,15 @@ export const componentTypes = [
532
532
  'notFoundComponent',
533
533
  ] as const
534
534
 
535
+ function routeNeedsPreload(route: AnyRoute) {
536
+ for (const componentType of componentTypes) {
537
+ if ((route.options[componentType] as any)?.preload) {
538
+ return true
539
+ }
540
+ }
541
+ return false
542
+ }
543
+
535
544
  export type RouterEvents = {
536
545
  onBeforeNavigate: {
537
546
  type: 'onBeforeNavigate'
@@ -1179,7 +1188,10 @@ export class Router<
1179
1188
  }
1180
1189
  } else {
1181
1190
  const status =
1182
- route.options.loader || route.options.beforeLoad || route.lazyFn
1191
+ route.options.loader ||
1192
+ route.options.beforeLoad ||
1193
+ route.lazyFn ||
1194
+ routeNeedsPreload(route)
1183
1195
  ? 'pending'
1184
1196
  : 'success'
1185
1197
 
@@ -2263,11 +2275,6 @@ export class Router<
2263
2275
  componentsPromise,
2264
2276
  }))
2265
2277
 
2266
- // Lazy option can modify the route options,
2267
- // so we need to wait for it to resolve before
2268
- // we can use the options
2269
- await route._lazyPromise
2270
-
2271
2278
  // Kick off the loader!
2272
2279
  let loaderData =
2273
2280
  await route.options.loader?.(getLoaderContext())
@@ -2288,6 +2295,11 @@ export class Router<
2288
2295
  loaderData,
2289
2296
  )
2290
2297
 
2298
+ // Lazy option can modify the route options,
2299
+ // so we need to wait for it to resolve before
2300
+ // we can use the options
2301
+ await route._lazyPromise
2302
+
2291
2303
  await potentialPendingMinPromise()
2292
2304
 
2293
2305
  const meta = route.options.meta?.({