@tanstack/react-router 0.0.1-beta.270 → 0.0.1-beta.272

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,7 +1,7 @@
1
1
  {
2
2
  "name": "@tanstack/react-router",
3
3
  "author": "Tanner Linsley",
4
- "version": "0.0.1-beta.270",
4
+ "version": "0.0.1-beta.272",
5
5
  "license": "MIT",
6
6
  "repository": "tanstack/router",
7
7
  "homepage": "https://tanstack.com/router",
@@ -44,7 +44,7 @@
44
44
  "@tanstack/store": "^0.1.3",
45
45
  "tiny-invariant": "^1.3.1",
46
46
  "tiny-warning": "^1.0.3",
47
- "@tanstack/history": "0.0.1-beta.270"
47
+ "@tanstack/history": "0.0.1-beta.272"
48
48
  },
49
49
  "scripts": {
50
50
  "build": "rollup --config rollup.config.js"
@@ -74,18 +74,26 @@ export function RouterProvider<
74
74
  },
75
75
  } as any)
76
76
 
77
- const inner = (
78
- <routerContext.Provider value={router}>
77
+ const matches = router.options.InnerWrap ? (
78
+ <router.options.InnerWrap>
79
79
  <Matches />
80
+ </router.options.InnerWrap>
81
+ ) : (
82
+ <Matches />
83
+ )
84
+
85
+ const provider = (
86
+ <routerContext.Provider value={router}>
87
+ {matches}
80
88
  <Transitioner />
81
89
  </routerContext.Provider>
82
90
  )
83
91
 
84
92
  if (router.options.Wrap) {
85
- return <router.options.Wrap>{inner}</router.options.Wrap>
93
+ return <router.options.Wrap>{provider}</router.options.Wrap>
86
94
  }
87
95
 
88
- return inner
96
+ return provider
89
97
  }
90
98
 
91
99
  function Transitioner() {
@@ -1,5 +1,5 @@
1
1
  import * as React from 'react'
2
- import { RouteComponent } from './route'
2
+ import { AsyncRouteComponent } from './route'
3
3
 
4
4
  export function lazyRouteComponent<
5
5
  T extends Record<string, any>,
@@ -7,7 +7,9 @@ export function lazyRouteComponent<
7
7
  >(
8
8
  importer: () => Promise<T>,
9
9
  exportName?: TKey,
10
- ): T[TKey] extends (props: any) => any ? RouteComponent : never {
10
+ ): T[TKey] extends (props: infer TProps) => any
11
+ ? AsyncRouteComponent<TProps>
12
+ : never {
11
13
  let loadPromise: Promise<any>
12
14
 
13
15
  const load = () => {
package/src/route.ts CHANGED
@@ -184,7 +184,7 @@ export type UpdatableRouteOptions<
184
184
  wrapInSuspense?: boolean
185
185
  // The content to be rendered when the route is matched. If no component is provided, defaults to `<Outlet />`
186
186
  component?: RouteComponent
187
- errorComponent?: false | null | RouteComponent
187
+ errorComponent?: false | null | ErrorRouteComponent
188
188
  pendingComponent?: RouteComponent
189
189
  pendingMs?: number
190
190
  pendingMinMs?: number
@@ -773,11 +773,7 @@ export function createRouteMask<
773
773
  return opts as any
774
774
  }
775
775
 
776
- export type ErrorRouteProps<
777
- TFullSearchSchema extends Record<string, any> = AnySearchSchema,
778
- TAllParams extends AnyPathParams = AnyPathParams,
779
- TAllContext extends Record<string, any> = AnyContext,
780
- > = {
776
+ export type ErrorRouteProps = {
781
777
  error: unknown
782
778
  info: { componentStack: string }
783
779
  }
@@ -785,14 +781,19 @@ export type ErrorRouteProps<
785
781
 
786
782
  export type ReactNode = any
787
783
 
788
- export type SyncRouteComponent =
789
- | (() => JSX.Element)
790
- | React.LazyExoticComponent<() => JSX.Element>
784
+ export type SyncRouteComponent<TProps> =
785
+ | ((props: TProps) => ReactNode)
786
+ | React.LazyExoticComponent<(props: TProps) => ReactNode>
791
787
 
792
- export type RouteComponent = SyncRouteComponent & {
788
+ export type AsyncRouteComponent<TProps> = SyncRouteComponent<TProps> & {
793
789
  preload?: () => Promise<void>
794
790
  }
795
791
 
792
+ export type RouteComponent<TProps = any> = SyncRouteComponent<TProps> &
793
+ AsyncRouteComponent<TProps>
794
+
795
+ export type ErrorRouteComponent = RouteComponent<ErrorRouteProps>
796
+
796
797
  export class NotFoundRoute<
797
798
  TParentRoute extends AnyRootRoute,
798
799
  TSearchSchema extends RouteConstraints['TSearchSchema'] = {},
package/src/router.ts CHANGED
@@ -119,6 +119,7 @@ export interface RouterOptions<
119
119
  routeMasks?: RouteMask<TRouteTree>[]
120
120
  unmaskOnReload?: boolean
121
121
  Wrap?: (props: { children: any }) => JSX.Element
122
+ InnerWrap?: (props: { children: any }) => JSX.Element
122
123
  notFoundRoute?: AnyRoute
123
124
  }
124
125