@tanstack/react-router 1.45.11 → 1.45.14

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.
Files changed (75) hide show
  1. package/dist/cjs/Match.cjs +14 -7
  2. package/dist/cjs/Match.cjs.map +1 -1
  3. package/dist/cjs/Match.d.cts +5 -2
  4. package/dist/cjs/Matches.cjs.map +1 -1
  5. package/dist/cjs/Matches.d.cts +1 -1
  6. package/dist/cjs/RouterProvider.cjs.map +1 -1
  7. package/dist/cjs/Transitioner.cjs +0 -3
  8. package/dist/cjs/Transitioner.cjs.map +1 -1
  9. package/dist/cjs/fileRoute.cjs.map +1 -1
  10. package/dist/cjs/fileRoute.d.cts +2 -3
  11. package/dist/cjs/index.d.cts +37 -20
  12. package/dist/cjs/not-found.cjs.map +1 -1
  13. package/dist/cjs/not-found.d.cts +1 -1
  14. package/dist/cjs/renderRouteNotFound.cjs.map +1 -1
  15. package/dist/cjs/route.cjs.map +1 -1
  16. package/dist/cjs/route.d.cts +0 -1
  17. package/dist/cjs/router.cjs +2 -2
  18. package/dist/cjs/router.cjs.map +1 -1
  19. package/dist/cjs/router.d.cts +1 -1
  20. package/dist/cjs/useLoaderData.cjs.map +1 -1
  21. package/dist/cjs/useLoaderData.d.cts +3 -3
  22. package/dist/cjs/useLoaderDeps.cjs.map +1 -1
  23. package/dist/cjs/useMatch.cjs.map +1 -1
  24. package/dist/cjs/useNavigate.cjs +0 -2
  25. package/dist/cjs/useNavigate.cjs.map +1 -1
  26. package/dist/cjs/useRouter.cjs.map +1 -1
  27. package/dist/cjs/useRouterState.cjs.map +1 -1
  28. package/dist/cjs/utils.cjs.map +1 -1
  29. package/dist/esm/Match.d.ts +5 -2
  30. package/dist/esm/Match.js +14 -7
  31. package/dist/esm/Match.js.map +1 -1
  32. package/dist/esm/Matches.d.ts +1 -1
  33. package/dist/esm/Matches.js.map +1 -1
  34. package/dist/esm/RouterProvider.js.map +1 -1
  35. package/dist/esm/Transitioner.js +0 -3
  36. package/dist/esm/Transitioner.js.map +1 -1
  37. package/dist/esm/fileRoute.d.ts +2 -3
  38. package/dist/esm/fileRoute.js.map +1 -1
  39. package/dist/esm/index.d.ts +37 -20
  40. package/dist/esm/not-found.d.ts +1 -1
  41. package/dist/esm/not-found.js.map +1 -1
  42. package/dist/esm/renderRouteNotFound.js.map +1 -1
  43. package/dist/esm/route.d.ts +0 -1
  44. package/dist/esm/route.js.map +1 -1
  45. package/dist/esm/router.d.ts +1 -1
  46. package/dist/esm/router.js +2 -2
  47. package/dist/esm/router.js.map +1 -1
  48. package/dist/esm/useLoaderData.d.ts +3 -3
  49. package/dist/esm/useLoaderData.js.map +1 -1
  50. package/dist/esm/useLoaderDeps.js.map +1 -1
  51. package/dist/esm/useMatch.js.map +1 -1
  52. package/dist/esm/useNavigate.js +0 -2
  53. package/dist/esm/useNavigate.js.map +1 -1
  54. package/dist/esm/useRouter.js.map +1 -1
  55. package/dist/esm/useRouterState.js.map +1 -1
  56. package/dist/esm/utils.js.map +1 -1
  57. package/package.json +2 -2
  58. package/src/Match.tsx +20 -10
  59. package/src/Matches.tsx +1 -1
  60. package/src/RouterProvider.tsx +0 -5
  61. package/src/Transitioner.tsx +1 -1
  62. package/src/fileRoute.ts +1 -5
  63. package/src/index.tsx +192 -150
  64. package/src/not-found.tsx +1 -2
  65. package/src/renderRouteNotFound.tsx +2 -2
  66. package/src/route.ts +3 -3
  67. package/src/routeInfo.ts +1 -1
  68. package/src/router.ts +6 -10
  69. package/src/useLoaderData.tsx +13 -6
  70. package/src/useLoaderDeps.tsx +2 -2
  71. package/src/useMatch.tsx +2 -2
  72. package/src/useNavigate.tsx +0 -3
  73. package/src/useRouter.tsx +1 -1
  74. package/src/useRouterState.tsx +1 -1
  75. package/src/utils.ts +1 -1
package/src/index.tsx CHANGED
@@ -3,18 +3,27 @@ export {
3
3
  createBrowserHistory,
4
4
  createHashHistory,
5
5
  createMemoryHistory,
6
- type BlockerFn,
7
- type HistoryLocation,
8
- type RouterHistory,
9
- type ParsedPath,
10
- type HistoryState,
6
+ } from '@tanstack/history'
7
+ export type {
8
+ BlockerFn,
9
+ HistoryLocation,
10
+ RouterHistory,
11
+ ParsedPath,
12
+ HistoryState,
11
13
  } from '@tanstack/history'
12
14
  export { default as invariant } from 'tiny-invariant'
13
15
  export { default as warning } from 'tiny-warning'
14
- export { useAwaited, Await, type AwaitOptions } from './awaited'
16
+
17
+ export { useAwaited, Await } from './awaited'
18
+ export type { AwaitOptions } from './awaited'
19
+
15
20
  export { ScriptOnce } from './ScriptOnce'
16
- export { defer, type DeferredPromiseState, type DeferredPromise } from './defer'
21
+
22
+ export { defer } from './defer'
23
+ export type { DeferredPromiseState, DeferredPromise } from './defer'
24
+
17
25
  export { CatchBoundary, ErrorComponent } from './CatchBoundary'
26
+
18
27
  export {
19
28
  FileRoute,
20
29
  createFileRoute,
@@ -22,46 +31,48 @@ export {
22
31
  LazyRoute,
23
32
  createLazyRoute,
24
33
  createLazyFileRoute,
25
- type FileRoutesByPath,
26
- type LazyRouteOptions,
27
34
  } from './fileRoute'
35
+ export type { FileRoutesByPath, LazyRouteOptions } from './fileRoute'
36
+
28
37
  export * from './history'
38
+
29
39
  export { lazyRouteComponent } from './lazyRouteComponent'
30
- export {
31
- useLinkProps,
32
- createLink,
33
- Link,
34
- type CleanPath,
35
- type Split,
36
- type ParsePathParams,
37
- type Join,
38
- type Last,
39
- type RemoveTrailingSlashes,
40
- type RemoveLeadingSlashes,
41
- type SearchPaths,
42
- type SearchRelativePathAutoComplete,
43
- type RelativeToParentPathAutoComplete,
44
- type RelativeToCurrentPathAutoComplete,
45
- type AbsolutePathAutoComplete,
46
- type RelativeToPathAutoComplete,
47
- type NavigateOptions,
48
- type ToOptions,
49
- type ToMaskOptions,
50
- type ToSubOptions,
51
- type ResolveRoute,
52
- type SearchParamOptions,
53
- type PathParamOptions,
54
- type ToPathOption,
55
- type ActiveOptions,
56
- type LinkOptions,
57
- type CheckPath,
58
- type ResolveRelativePath,
59
- type UseLinkPropsOptions,
60
- type ActiveLinkOptions,
61
- type LinkProps,
62
- type LinkComponent,
40
+
41
+ export { useLinkProps, createLink, Link } from './link'
42
+ export type {
43
+ CleanPath,
44
+ Split,
45
+ ParsePathParams,
46
+ Join,
47
+ Last,
48
+ RemoveTrailingSlashes,
49
+ RemoveLeadingSlashes,
50
+ SearchPaths,
51
+ SearchRelativePathAutoComplete,
52
+ RelativeToParentPathAutoComplete,
53
+ RelativeToCurrentPathAutoComplete,
54
+ AbsolutePathAutoComplete,
55
+ RelativeToPathAutoComplete,
56
+ NavigateOptions,
57
+ ToOptions,
58
+ ToMaskOptions,
59
+ ToSubOptions,
60
+ ResolveRoute,
61
+ SearchParamOptions,
62
+ PathParamOptions,
63
+ ToPathOption,
64
+ ActiveOptions,
65
+ LinkOptions,
66
+ CheckPath,
67
+ ResolveRelativePath,
68
+ UseLinkPropsOptions,
69
+ ActiveLinkOptions,
70
+ LinkProps,
71
+ LinkComponent,
63
72
  } from './link'
64
- export { type ParsedLocation } from './location'
73
+
74
+ export type { ParsedLocation } from './location'
75
+
65
76
  export {
66
77
  Matches,
67
78
  useMatchRoute,
@@ -69,18 +80,27 @@ export {
69
80
  useMatches,
70
81
  useParentMatches,
71
82
  useChildMatches,
72
- type RouteMatch,
73
- type AnyRouteMatch,
74
- type MatchRouteOptions,
75
- type UseMatchRouteOptions,
76
- type MakeMatchRouteOptions,
77
83
  } from './Matches'
84
+ export type {
85
+ RouteMatch,
86
+ AnyRouteMatch,
87
+ MatchRouteOptions,
88
+ UseMatchRouteOptions,
89
+ MakeMatchRouteOptions,
90
+ } from './Matches'
91
+
78
92
  export { matchContext } from './matchContext'
93
+
79
94
  export { Match, Outlet } from './Match'
95
+
80
96
  export { isServerSideError, defaultDeserializeError } from './isServerSideError'
97
+
81
98
  export { useMatch } from './useMatch'
99
+
82
100
  export { useLoaderDeps } from './useLoaderDeps'
101
+
83
102
  export { useLoaderData } from './useLoaderData'
103
+
84
104
  export {
85
105
  joinPaths,
86
106
  cleanPath,
@@ -93,17 +113,17 @@ export {
93
113
  matchPathname,
94
114
  removeBasepath,
95
115
  matchByPath,
96
- type Segment,
97
116
  } from './path'
117
+ export type { Segment } from './path'
118
+
98
119
  export { encode, decode } from './qss'
99
- export {
100
- redirect,
101
- isRedirect,
102
- type AnyRedirect,
103
- type Redirect,
104
- type ResolvedRedirect,
105
- } from './redirects'
106
- export { rootRouteId, type RootRouteId } from './root'
120
+
121
+ export { redirect, isRedirect } from './redirects'
122
+ export type { AnyRedirect, Redirect, ResolvedRedirect } from './redirects'
123
+
124
+ export { rootRouteId } from './root'
125
+ export type { RootRouteId } from './root'
126
+
107
127
  export {
108
128
  RouteApi,
109
129
  getRouteApi,
@@ -115,65 +135,69 @@ export {
115
135
  createRootRouteWithContext,
116
136
  createRouteMask,
117
137
  NotFoundRoute,
118
- type AnyPathParams,
119
- type SearchSchemaInput,
120
- type AnySearchSchema,
121
- type AnyContext,
122
- type RouteContext,
123
- type PreloadableObj,
124
- type RoutePathOptions,
125
- type StaticDataRouteOption,
126
- type RoutePathOptionsIntersection,
127
- type RouteOptions,
128
- type FileBaseRouteOptions,
129
- type BaseRouteOptions,
130
- type UpdatableRouteOptions,
131
- type UpdatableStaticRouteOption,
132
- type MetaDescriptor,
133
- type RouteLinkEntry,
134
- type ParseParamsFn,
135
- type SearchSchemaValidator,
136
- type SearchSchemaValidatorObj,
137
- type SearchSchemaValidatorFn,
138
- type RouteLoaderFn,
139
- type LoaderFnContext,
140
- type SearchFilter,
141
- type ResolveId,
142
- type InferFullSearchSchema,
143
- type InferFullSearchSchemaInput,
144
- type ResolveFullSearchSchema,
145
- type ResolveFullSearchSchemaInput,
146
- type AnyRoute,
147
- type RouteConstraints,
148
- type AnyRootRoute,
149
- type ResolveFullPath,
150
- type RouteMask,
151
- type ErrorRouteProps,
152
- type ErrorComponentProps,
153
- type NotFoundRouteProps,
154
- type ReactNode,
155
- type SyncRouteComponent,
156
- type AsyncRouteComponent,
157
- type RouteComponent,
158
- type ErrorRouteComponent,
159
- type NotFoundRouteComponent,
160
- type TrimPath,
161
- type TrimPathLeft,
162
- type TrimPathRight,
163
- type RootRouteOptions,
164
- type AnyRouteWithContext,
165
138
  } from './route'
166
- export {
167
- type ParseRoute,
168
- type RoutesById,
169
- type RouteById,
170
- type RouteIds,
171
- type RoutesByPath,
172
- type RouteByPath,
173
- type RoutePaths,
174
- type FullSearchSchema,
175
- type AllParams,
139
+ export type {
140
+ AnyPathParams,
141
+ SearchSchemaInput,
142
+ AnySearchSchema,
143
+ AnyContext,
144
+ RouteContext,
145
+ PreloadableObj,
146
+ RoutePathOptions,
147
+ StaticDataRouteOption,
148
+ RoutePathOptionsIntersection,
149
+ RouteOptions,
150
+ FileBaseRouteOptions,
151
+ BaseRouteOptions,
152
+ UpdatableRouteOptions,
153
+ UpdatableStaticRouteOption,
154
+ MetaDescriptor,
155
+ RouteLinkEntry,
156
+ ParseParamsFn,
157
+ SearchSchemaValidator,
158
+ SearchSchemaValidatorObj,
159
+ SearchSchemaValidatorFn,
160
+ RouteLoaderFn,
161
+ LoaderFnContext,
162
+ SearchFilter,
163
+ ResolveId,
164
+ InferFullSearchSchema,
165
+ InferFullSearchSchemaInput,
166
+ ResolveFullSearchSchema,
167
+ ResolveFullSearchSchemaInput,
168
+ AnyRoute,
169
+ RouteConstraints,
170
+ AnyRootRoute,
171
+ ResolveFullPath,
172
+ RouteMask,
173
+ ErrorRouteProps,
174
+ ErrorComponentProps,
175
+ NotFoundRouteProps,
176
+ ReactNode,
177
+ SyncRouteComponent,
178
+ AsyncRouteComponent,
179
+ RouteComponent,
180
+ ErrorRouteComponent,
181
+ NotFoundRouteComponent,
182
+ TrimPath,
183
+ TrimPathLeft,
184
+ TrimPathRight,
185
+ RootRouteOptions,
186
+ AnyRouteWithContext,
187
+ } from './route'
188
+
189
+ export type {
190
+ ParseRoute,
191
+ RoutesById,
192
+ RouteById,
193
+ RouteIds,
194
+ RoutesByPath,
195
+ RouteByPath,
196
+ RoutePaths,
197
+ FullSearchSchema,
198
+ AllParams,
176
199
  } from './routeInfo'
200
+
177
201
  export {
178
202
  componentTypes,
179
203
  createRouter,
@@ -183,62 +207,76 @@ export {
183
207
  PathParamError,
184
208
  getInitialRouterState,
185
209
  defaultSerializeError,
186
- type Register,
187
- type AnyRouter,
188
- type RegisteredRouter,
189
- type HydrationCtx,
190
- type RouterContextOptions,
191
- type TrailingSlashOption,
192
- type RouterOptions,
193
- type RouterTransformer,
194
- type RouterErrorSerializer,
195
- type RouterState,
196
- type ListenerFn,
197
- type BuildNextOptions,
198
- type DehydratedRouterState,
199
- type DehydratedRouteMatch,
200
- type DehydratedRouter,
201
- type RouterConstructorOptions,
202
- type RouterEvents,
203
- type RouterEvent,
204
- type RouterListener,
205
- type AnyRouterWithContext,
206
210
  } from './router'
207
- export {
208
- RouterProvider,
209
- RouterContextProvider,
210
- type RouterProps,
211
- type CommitLocationOptions,
212
- type MatchLocation,
213
- type NavigateFn,
214
- type BuildLocationFn,
215
- type InjectedHtmlEntry,
211
+ export type {
212
+ Register,
213
+ AnyRouter,
214
+ RegisteredRouter,
215
+ HydrationCtx,
216
+ RouterContextOptions,
217
+ TrailingSlashOption,
218
+ RouterOptions,
219
+ RouterTransformer,
220
+ RouterErrorSerializer,
221
+ RouterState,
222
+ ListenerFn,
223
+ BuildNextOptions,
224
+ DehydratedRouterState,
225
+ DehydratedRouteMatch,
226
+ DehydratedRouter,
227
+ RouterConstructorOptions,
228
+ RouterEvents,
229
+ RouterEvent,
230
+ RouterListener,
231
+ AnyRouterWithContext,
232
+ } from './router'
233
+
234
+ export { RouterProvider, RouterContextProvider } from './RouterProvider'
235
+ export type {
236
+ RouterProps,
237
+ CommitLocationOptions,
238
+ MatchLocation,
239
+ NavigateFn,
240
+ BuildLocationFn,
241
+ InjectedHtmlEntry,
216
242
  } from './RouterProvider'
243
+
217
244
  export {
218
245
  useScrollRestoration,
219
246
  useElementScrollRestoration,
220
247
  ScrollRestoration,
221
- type ScrollRestorationOptions,
222
248
  } from './scroll-restoration'
249
+ export type { ScrollRestorationOptions } from './scroll-restoration'
250
+
223
251
  export {
224
252
  defaultParseSearch,
225
253
  defaultStringifySearch,
226
254
  parseSearchWith,
227
255
  stringifySearchWith,
228
- type SearchSerializer,
229
- type SearchParser,
230
256
  } from './searchParams'
257
+ export type { SearchSerializer, SearchParser } from './searchParams'
258
+
231
259
  export { useBlocker, Block } from './useBlocker'
232
- export { useNavigate, Navigate, type UseNavigateResult } from './useNavigate'
260
+
261
+ export { useNavigate, Navigate } from './useNavigate'
262
+ export type { UseNavigateResult } from './useNavigate'
263
+
233
264
  export { useParams } from './useParams'
265
+
234
266
  export { useSearch } from './useSearch'
267
+
235
268
  export {
236
269
  getRouterContext, // SSR
237
270
  } from './routerContext'
271
+
238
272
  export { useRouteContext } from './useRouteContext'
273
+
239
274
  export { useRouter } from './useRouter'
275
+
240
276
  export { useRouterState } from './useRouterState'
277
+
241
278
  export { useLocation } from './useLocation'
279
+
242
280
  export {
243
281
  escapeJSON, // SSR
244
282
  useLayoutEffect, // SSR
@@ -251,12 +289,16 @@ export {
251
289
  useStableCallback,
252
290
  shallow,
253
291
  } from './utils'
292
+
254
293
  export {
255
294
  notFound,
256
295
  isNotFound,
257
296
  CatchNotFound,
258
297
  DefaultGlobalNotFound,
259
- type NotFoundError,
260
298
  } from './not-found'
261
- export { type Manifest, type RouterManagedTag } from './manifest'
262
- export { createControlledPromise, type ControlledPromise } from './utils'
299
+ export type { NotFoundError } from './not-found'
300
+
301
+ export type { Manifest, RouterManagedTag } from './manifest'
302
+
303
+ export { createControlledPromise } from './utils'
304
+ export type { ControlledPromise } from './utils'
package/src/not-found.tsx CHANGED
@@ -1,10 +1,9 @@
1
- // eslint-disable-next-line ts/consistent-type-imports
2
1
  import * as React from 'react'
3
2
  import { CatchBoundary } from './CatchBoundary'
4
3
  import { useRouterState } from './useRouterState'
4
+ import type { ErrorInfo } from 'react'
5
5
  import type { RegisteredRouter } from './router'
6
6
  import type { RouteIds } from './routeInfo'
7
- import type { ErrorInfo } from 'react'
8
7
 
9
8
  export type NotFoundError = {
10
9
  /**
@@ -1,8 +1,8 @@
1
1
  import * as React from 'react'
2
2
  import warning from 'tiny-warning'
3
3
  import { DefaultGlobalNotFound } from './not-found'
4
- import { type AnyRouter } from './router'
5
- import { type AnyRoute } from './route'
4
+ import type { AnyRouter } from './router'
5
+ import type { AnyRoute } from './route'
6
6
 
7
7
  export function renderRouteNotFound(
8
8
  router: AnyRouter,
package/src/route.ts CHANGED
@@ -8,15 +8,15 @@ import { useSearch } from './useSearch'
8
8
  import { notFound } from './not-found'
9
9
  import { useNavigate } from './useNavigate'
10
10
  import { rootRouteId } from './root'
11
+ import type * as React from 'react'
11
12
  import type { RootRouteId } from './root'
12
13
  import type { UseNavigateResult } from './useNavigate'
13
- import type * as React from 'react'
14
14
  import type { MakeRouteMatch, RouteMatch } from './Matches'
15
15
  import type { NavigateOptions, ParsePathParams, ToSubOptions } from './link'
16
16
  import type { ParsedLocation } from './location'
17
17
  import type { RouteById, RouteIds, RoutePaths } from './routeInfo'
18
18
  import type { AnyRouter, RegisteredRouter, Router } from './router'
19
- import type { Assign, Expand, IsAny, NoInfer, PickRequired } from './utils'
19
+ import type { Assign, Expand, NoInfer, PickRequired } from './utils'
20
20
  import type { BuildLocationFn, NavigateFn } from './RouterProvider'
21
21
  import type { NotFoundError } from './not-found'
22
22
  import type { LazyRoute } from './fileRoute'
@@ -719,7 +719,7 @@ export class Route<
719
719
 
720
720
  const isRoot = !options?.path && !options?.id
721
721
 
722
- // eslint-disable-next-line ts/no-unnecessary-condition
722
+ // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
723
723
  this.parentRoute = this.options?.getParentRoute?.()
724
724
 
725
725
  if (isRoot) {
package/src/routeInfo.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import type { AnyRoute } from './route'
2
2
  import type { AnyRouter, TrailingSlashOption } from './router'
3
- import type { Expand, MergeUnion } from './utils'
3
+ import type { MergeUnion } from './utils'
4
4
 
5
5
  export type ParseRoute<TRouteTree, TAcc = TRouteTree> = TRouteTree extends {
6
6
  types: { children: infer TChildren }
package/src/router.ts CHANGED
@@ -26,13 +26,13 @@ import {
26
26
  import { isRedirect, isResolvedRedirect } from './redirects'
27
27
  import { isNotFound } from './not-found'
28
28
  import type * as React from 'react'
29
- import type { Manifest } from './manifest'
30
29
  import type {
31
30
  HistoryLocation,
32
31
  HistoryState,
33
32
  RouterHistory,
34
33
  } from '@tanstack/history'
35
-
34
+ import type { NoInfer } from '@tanstack/react-store'
35
+ import type { Manifest } from './manifest'
36
36
  import type {
37
37
  AnyContext,
38
38
  AnyRoute,
@@ -70,13 +70,9 @@ import type {
70
70
  CommitLocationOptions,
71
71
  NavigateFn,
72
72
  } from './RouterProvider'
73
-
74
73
  import type { AnyRedirect, ResolvedRedirect } from './redirects'
75
-
76
74
  import type { NotFoundError } from './not-found'
77
75
  import type { NavigateOptions, ResolveRelativePath, ToOptions } from './link'
78
- import type { NoInfer } from '@tanstack/react-store'
79
- import type { DeferredPromiseState } from './defer'
80
76
 
81
77
  //
82
78
 
@@ -639,7 +635,7 @@ export class Router<
639
635
  }
640
636
 
641
637
  if (
642
- // eslint-disable-next-line ts/no-unnecessary-condition
638
+ // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
643
639
  !this.history ||
644
640
  (this.options.history && this.options.history !== this.history)
645
641
  ) {
@@ -658,7 +654,7 @@ export class Router<
658
654
  this.buildRouteTree()
659
655
  }
660
656
 
661
- // eslint-disable-next-line ts/no-unnecessary-condition
657
+ // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
662
658
  if (!this.__store) {
663
659
  this.__store = new Store(getInitialRouterState(this.latestLocation), {
664
660
  onUpdate: () => {
@@ -1546,9 +1542,9 @@ export class Router<
1546
1542
  await this.loadMatches({
1547
1543
  matches: pendingMatches,
1548
1544
  location: next,
1549
- // eslint-disable-next-line ts/require-await
1545
+ // eslint-disable-next-line @typescript-eslint/require-await
1550
1546
  onReady: async () => {
1551
- // eslint-disable-next-line ts/require-await
1547
+ // eslint-disable-next-line @typescript-eslint/require-await
1552
1548
  this.startViewTransition(async () => {
1553
1549
  // this.viewTransitionPromise = createControlledPromise<true>()
1554
1550
 
@@ -1,17 +1,18 @@
1
- import { type RegisteredRouter } from './router'
2
- import { type AnyRoute } from './route'
3
1
  import { useMatch } from './useMatch'
2
+ import type { RegisteredRouter } from './router'
3
+ import type { AnyRoute } from './route'
4
4
  import type { MakeRouteMatch } from './Matches'
5
5
  import type { RouteIds } from './routeInfo'
6
6
  import type { StrictOrFrom } from './utils'
7
7
 
8
8
  export type UseLoaderDataOptions<
9
+ TRouteTree extends AnyRoute,
9
10
  TFrom,
10
11
  TStrict extends boolean,
11
- TRouteMatch,
12
+ TRouteMatch extends MakeRouteMatch<TRouteTree, TFrom, TStrict>,
12
13
  TSelected,
13
14
  > = StrictOrFrom<TFrom, TStrict> & {
14
- select?: (match: TRouteMatch) => TSelected
15
+ select?: (match: Required<TRouteMatch>['loaderData']) => TSelected
15
16
  }
16
17
 
17
18
  export function useLoaderData<
@@ -25,13 +26,19 @@ export function useLoaderData<
25
26
  > = MakeRouteMatch<TRouteTree, TFrom, TStrict>,
26
27
  TSelected = Required<TRouteMatch>['loaderData'],
27
28
  >(
28
- opts: UseLoaderDataOptions<TFrom, TStrict, TRouteMatch, TSelected>,
29
+ opts: UseLoaderDataOptions<
30
+ TRouteTree,
31
+ TFrom,
32
+ TStrict,
33
+ TRouteMatch,
34
+ TSelected
35
+ >,
29
36
  ): TSelected {
30
37
  return useMatch<TRouteTree, TFrom, TStrict, TRouteMatch, TSelected>({
31
38
  ...opts,
32
39
  select: (s) => {
33
40
  return typeof opts.select === 'function'
34
- ? opts.select(s.loaderData as TRouteMatch)
41
+ ? opts.select(s.loaderData)
35
42
  : (s.loaderData as TSelected)
36
43
  },
37
44
  })
@@ -1,6 +1,6 @@
1
- import { type RegisteredRouter } from './router'
2
- import { type AnyRoute } from './route'
3
1
  import { useMatch } from './useMatch'
2
+ import type { RegisteredRouter } from './router'
3
+ import type { AnyRoute } from './route'
4
4
  import type { MakeRouteMatch } from './Matches'
5
5
  import type { RouteIds } from './routeInfo'
6
6
  import type { StrictOrFrom } from './utils'
package/src/useMatch.tsx CHANGED
@@ -1,9 +1,9 @@
1
1
  import * as React from 'react'
2
2
  import invariant from 'tiny-invariant'
3
3
  import { useRouterState } from './useRouterState'
4
- import { type RegisteredRouter } from './router'
5
- import { type AnyRoute } from './route'
6
4
  import { matchContext } from './matchContext'
5
+ import type { RegisteredRouter } from './router'
6
+ import type { AnyRoute } from './route'
7
7
  import type { MakeRouteMatch } from './Matches'
8
8
  import type { RouteIds } from './routeInfo'
9
9
  import type { StrictOrFrom } from './utils'
@@ -1,7 +1,5 @@
1
1
  import * as React from 'react'
2
- import { useMatch } from './useMatch'
3
2
  import { useRouter } from './useRouter'
4
-
5
3
  import type { FromPathOption, NavigateOptions } from './link'
6
4
  import type { RoutePaths } from './routeInfo'
7
5
  import type { AnyRouter, RegisteredRouter } from './router'
@@ -58,7 +56,6 @@ export function Navigate<
58
56
  TMaskTo extends string = '',
59
57
  >(props: NavigateOptions<TRouter, TFrom, TTo, TMaskFrom, TMaskTo>): null {
60
58
  const { navigate } = useRouter()
61
- const match = useMatch({ strict: false })
62
59
 
63
60
  React.useEffect(() => {
64
61
  navigate({
package/src/useRouter.tsx CHANGED
@@ -1,7 +1,7 @@
1
1
  import * as React from 'react'
2
2
  import warning from 'tiny-warning'
3
3
  import { getRouterContext } from './routerContext'
4
- import type { AnyRouter, RegisteredRouter, Router } from './router'
4
+ import type { AnyRouter, RegisteredRouter } from './router'
5
5
 
6
6
  export function useRouter<TRouter extends AnyRouter = RegisteredRouter>(opts?: {
7
7
  warn?: boolean
@@ -1,6 +1,6 @@
1
1
  import { useStore } from '@tanstack/react-store'
2
2
  import { useRouter } from './useRouter'
3
- import type { AnyRouter, RegisteredRouter, Router, RouterState } from './router'
3
+ import type { AnyRouter, RegisteredRouter, RouterState } from './router'
4
4
 
5
5
  export function useRouterState<
6
6
  TRouter extends AnyRouter = RegisteredRouter,
package/src/utils.ts CHANGED
@@ -40,7 +40,7 @@ export type MakeDifferenceOptional<TLeft, TRight> = Omit<
40
40
  }
41
41
 
42
42
  // from https://stackoverflow.com/a/53955431
43
- // eslint-disable-next-line ts/naming-convention
43
+ // eslint-disable-next-line @typescript-eslint/naming-convention
44
44
  export type IsUnion<T, U extends T = T> = (
45
45
  T extends any ? (U extends T ? false : true) : never
46
46
  ) extends false