@tanstack/solid-router 1.108.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/LICENSE +21 -0
- package/README.md +29 -0
- package/dist/cjs/Asset.cjs +59 -0
- package/dist/cjs/Asset.cjs.map +1 -0
- package/dist/cjs/Asset.d.cts +2 -0
- package/dist/cjs/CatchBoundary.cjs +92 -0
- package/dist/cjs/CatchBoundary.cjs.map +1 -0
- package/dist/cjs/CatchBoundary.d.cts +11 -0
- package/dist/cjs/HeadContent.cjs +129 -0
- package/dist/cjs/HeadContent.cjs.map +1 -0
- package/dist/cjs/HeadContent.d.cts +8 -0
- package/dist/cjs/Match.cjs +340 -0
- package/dist/cjs/Match.cjs.map +1 -0
- package/dist/cjs/Match.d.cts +8 -0
- package/dist/cjs/Matches.cjs +151 -0
- package/dist/cjs/Matches.cjs.map +1 -0
- package/dist/cjs/Matches.d.cts +69 -0
- package/dist/cjs/RouterProvider.cjs +45 -0
- package/dist/cjs/RouterProvider.cjs.map +1 -0
- package/dist/cjs/RouterProvider.d.cts +35 -0
- package/dist/cjs/SafeFragment.cjs +8 -0
- package/dist/cjs/SafeFragment.cjs.map +1 -0
- package/dist/cjs/SafeFragment.d.cts +1 -0
- package/dist/cjs/ScriptOnce.cjs +23 -0
- package/dist/cjs/ScriptOnce.cjs.map +1 -0
- package/dist/cjs/ScriptOnce.d.cts +5 -0
- package/dist/cjs/Scripts.cjs +48 -0
- package/dist/cjs/Scripts.cjs.map +1 -0
- package/dist/cjs/Scripts.d.cts +1 -0
- package/dist/cjs/ScrollRestoration.cjs +37 -0
- package/dist/cjs/ScrollRestoration.cjs.map +1 -0
- package/dist/cjs/ScrollRestoration.d.cts +15 -0
- package/dist/cjs/Transitioner.cjs +132 -0
- package/dist/cjs/Transitioner.cjs.map +1 -0
- package/dist/cjs/Transitioner.d.cts +1 -0
- package/dist/cjs/awaited.cjs +53 -0
- package/dist/cjs/awaited.cjs.map +1 -0
- package/dist/cjs/awaited.d.cts +11 -0
- package/dist/cjs/fileRoute.cjs +90 -0
- package/dist/cjs/fileRoute.cjs.map +1 -0
- package/dist/cjs/fileRoute.d.cts +58 -0
- package/dist/cjs/history.d.cts +8 -0
- package/dist/cjs/index.cjs +260 -0
- package/dist/cjs/index.cjs.map +1 -0
- package/dist/cjs/index.d.cts +53 -0
- package/dist/cjs/lazyRouteComponent.cjs +74 -0
- package/dist/cjs/lazyRouteComponent.cjs.map +1 -0
- package/dist/cjs/lazyRouteComponent.d.cts +7 -0
- package/dist/cjs/link.cjs +279 -0
- package/dist/cjs/link.cjs.map +1 -0
- package/dist/cjs/link.d.cts +113 -0
- package/dist/cjs/matchContext.cjs +25 -0
- package/dist/cjs/matchContext.cjs.map +1 -0
- package/dist/cjs/matchContext.d.cts +3 -0
- package/dist/cjs/not-found.cjs +51 -0
- package/dist/cjs/not-found.cjs.map +1 -0
- package/dist/cjs/not-found.d.cts +27 -0
- package/dist/cjs/redirects.cjs +29 -0
- package/dist/cjs/redirects.cjs.map +1 -0
- package/dist/cjs/redirects.d.cts +21 -0
- package/dist/cjs/renderRouteNotFound.cjs +23 -0
- package/dist/cjs/renderRouteNotFound.cjs.map +1 -0
- package/dist/cjs/renderRouteNotFound.d.cts +3 -0
- package/dist/cjs/route.cjs +233 -0
- package/dist/cjs/route.cjs.map +1 -0
- package/dist/cjs/route.d.cts +297 -0
- package/dist/cjs/routeInfo.d.cts +53 -0
- package/dist/cjs/router.cjs +1687 -0
- package/dist/cjs/router.cjs.map +1 -0
- package/dist/cjs/router.d.cts +555 -0
- package/dist/cjs/routerContext.cjs +33 -0
- package/dist/cjs/routerContext.cjs.map +1 -0
- package/dist/cjs/routerContext.d.cts +8 -0
- package/dist/cjs/scroll-restoration.cjs +183 -0
- package/dist/cjs/scroll-restoration.cjs.map +1 -0
- package/dist/cjs/scroll-restoration.d.cts +29 -0
- package/dist/cjs/typePrimitives.d.cts +66 -0
- package/dist/cjs/useBlocker.cjs +165 -0
- package/dist/cjs/useBlocker.cjs.map +1 -0
- package/dist/cjs/useBlocker.d.cts +68 -0
- package/dist/cjs/useCanGoBack.cjs +8 -0
- package/dist/cjs/useCanGoBack.cjs.map +1 -0
- package/dist/cjs/useCanGoBack.d.cts +1 -0
- package/dist/cjs/useLoaderData.cjs +14 -0
- package/dist/cjs/useLoaderData.cjs.map +1 -0
- package/dist/cjs/useLoaderData.d.cts +13 -0
- package/dist/cjs/useLoaderDeps.cjs +17 -0
- package/dist/cjs/useLoaderDeps.cjs.map +1 -0
- package/dist/cjs/useLoaderDeps.d.cts +12 -0
- package/dist/cjs/useLocation.cjs +10 -0
- package/dist/cjs/useLocation.cjs.map +1 -0
- package/dist/cjs/useLocation.d.cts +7 -0
- package/dist/cjs/useMatch.cjs +39 -0
- package/dist/cjs/useMatch.cjs.map +1 -0
- package/dist/cjs/useMatch.d.cts +14 -0
- package/dist/cjs/useNavigate.cjs +45 -0
- package/dist/cjs/useNavigate.cjs.map +1 -0
- package/dist/cjs/useNavigate.d.cts +7 -0
- package/dist/cjs/useParams.cjs +15 -0
- package/dist/cjs/useParams.cjs.map +1 -0
- package/dist/cjs/useParams.d.cts +15 -0
- package/dist/cjs/useRouteContext.cjs +11 -0
- package/dist/cjs/useRouteContext.cjs.map +1 -0
- package/dist/cjs/useRouteContext.d.cts +13 -0
- package/dist/cjs/useRouter.cjs +29 -0
- package/dist/cjs/useRouter.cjs.map +1 -0
- package/dist/cjs/useRouter.d.cts +4 -0
- package/dist/cjs/useRouterState.cjs +16 -0
- package/dist/cjs/useRouterState.cjs.map +1 -0
- package/dist/cjs/useRouterState.d.cts +8 -0
- package/dist/cjs/useSearch.cjs +15 -0
- package/dist/cjs/useSearch.cjs.map +1 -0
- package/dist/cjs/useSearch.d.cts +15 -0
- package/dist/cjs/utils.cjs +58 -0
- package/dist/cjs/utils.cjs.map +1 -0
- package/dist/cjs/utils.d.cts +44 -0
- package/dist/esm/Asset.d.ts +2 -0
- package/dist/esm/Asset.js +59 -0
- package/dist/esm/Asset.js.map +1 -0
- package/dist/esm/CatchBoundary.d.ts +11 -0
- package/dist/esm/CatchBoundary.js +75 -0
- package/dist/esm/CatchBoundary.js.map +1 -0
- package/dist/esm/HeadContent.d.ts +8 -0
- package/dist/esm/HeadContent.js +112 -0
- package/dist/esm/HeadContent.js.map +1 -0
- package/dist/esm/Match.d.ts +8 -0
- package/dist/esm/Match.js +323 -0
- package/dist/esm/Match.js.map +1 -0
- package/dist/esm/Matches.d.ts +69 -0
- package/dist/esm/Matches.js +134 -0
- package/dist/esm/Matches.js.map +1 -0
- package/dist/esm/RouterProvider.d.ts +35 -0
- package/dist/esm/RouterProvider.js +45 -0
- package/dist/esm/RouterProvider.js.map +1 -0
- package/dist/esm/SafeFragment.d.ts +1 -0
- package/dist/esm/SafeFragment.js +8 -0
- package/dist/esm/SafeFragment.js.map +1 -0
- package/dist/esm/ScriptOnce.d.ts +5 -0
- package/dist/esm/ScriptOnce.js +23 -0
- package/dist/esm/ScriptOnce.js.map +1 -0
- package/dist/esm/Scripts.d.ts +1 -0
- package/dist/esm/Scripts.js +48 -0
- package/dist/esm/Scripts.js.map +1 -0
- package/dist/esm/ScrollRestoration.d.ts +15 -0
- package/dist/esm/ScrollRestoration.js +37 -0
- package/dist/esm/ScrollRestoration.js.map +1 -0
- package/dist/esm/Transitioner.d.ts +1 -0
- package/dist/esm/Transitioner.js +115 -0
- package/dist/esm/Transitioner.js.map +1 -0
- package/dist/esm/awaited.d.ts +11 -0
- package/dist/esm/awaited.js +36 -0
- package/dist/esm/awaited.js.map +1 -0
- package/dist/esm/fileRoute.d.ts +58 -0
- package/dist/esm/fileRoute.js +90 -0
- package/dist/esm/fileRoute.js.map +1 -0
- package/dist/esm/history.d.ts +8 -0
- package/dist/esm/index.d.ts +53 -0
- package/dist/esm/index.js +149 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/lazyRouteComponent.d.ts +7 -0
- package/dist/esm/lazyRouteComponent.js +74 -0
- package/dist/esm/lazyRouteComponent.js.map +1 -0
- package/dist/esm/link.d.ts +113 -0
- package/dist/esm/link.js +262 -0
- package/dist/esm/link.js.map +1 -0
- package/dist/esm/matchContext.d.ts +3 -0
- package/dist/esm/matchContext.js +8 -0
- package/dist/esm/matchContext.js.map +1 -0
- package/dist/esm/not-found.d.ts +27 -0
- package/dist/esm/not-found.js +51 -0
- package/dist/esm/not-found.js.map +1 -0
- package/dist/esm/redirects.d.ts +21 -0
- package/dist/esm/redirects.js +29 -0
- package/dist/esm/redirects.js.map +1 -0
- package/dist/esm/renderRouteNotFound.d.ts +3 -0
- package/dist/esm/renderRouteNotFound.js +23 -0
- package/dist/esm/renderRouteNotFound.js.map +1 -0
- package/dist/esm/route.d.ts +297 -0
- package/dist/esm/route.js +233 -0
- package/dist/esm/route.js.map +1 -0
- package/dist/esm/routeInfo.d.ts +53 -0
- package/dist/esm/router.d.ts +555 -0
- package/dist/esm/router.js +1687 -0
- package/dist/esm/router.js.map +1 -0
- package/dist/esm/routerContext.d.ts +8 -0
- package/dist/esm/routerContext.js +16 -0
- package/dist/esm/routerContext.js.map +1 -0
- package/dist/esm/scroll-restoration.d.ts +29 -0
- package/dist/esm/scroll-restoration.js +183 -0
- package/dist/esm/scroll-restoration.js.map +1 -0
- package/dist/esm/typePrimitives.d.ts +66 -0
- package/dist/esm/useBlocker.d.ts +68 -0
- package/dist/esm/useBlocker.js +148 -0
- package/dist/esm/useBlocker.js.map +1 -0
- package/dist/esm/useCanGoBack.d.ts +1 -0
- package/dist/esm/useCanGoBack.js +8 -0
- package/dist/esm/useCanGoBack.js.map +1 -0
- package/dist/esm/useLoaderData.d.ts +13 -0
- package/dist/esm/useLoaderData.js +14 -0
- package/dist/esm/useLoaderData.js.map +1 -0
- package/dist/esm/useLoaderDeps.d.ts +12 -0
- package/dist/esm/useLoaderDeps.js +17 -0
- package/dist/esm/useLoaderDeps.js.map +1 -0
- package/dist/esm/useLocation.d.ts +7 -0
- package/dist/esm/useLocation.js +10 -0
- package/dist/esm/useLocation.js.map +1 -0
- package/dist/esm/useMatch.d.ts +14 -0
- package/dist/esm/useMatch.js +22 -0
- package/dist/esm/useMatch.js.map +1 -0
- package/dist/esm/useNavigate.d.ts +7 -0
- package/dist/esm/useNavigate.js +28 -0
- package/dist/esm/useNavigate.js.map +1 -0
- package/dist/esm/useParams.d.ts +15 -0
- package/dist/esm/useParams.js +15 -0
- package/dist/esm/useParams.js.map +1 -0
- package/dist/esm/useRouteContext.d.ts +13 -0
- package/dist/esm/useRouteContext.js +11 -0
- package/dist/esm/useRouteContext.js.map +1 -0
- package/dist/esm/useRouter.d.ts +4 -0
- package/dist/esm/useRouter.js +12 -0
- package/dist/esm/useRouter.js.map +1 -0
- package/dist/esm/useRouterState.d.ts +8 -0
- package/dist/esm/useRouterState.js +16 -0
- package/dist/esm/useRouterState.js.map +1 -0
- package/dist/esm/useSearch.d.ts +15 -0
- package/dist/esm/useSearch.js +15 -0
- package/dist/esm/useSearch.js.map +1 -0
- package/dist/esm/utils.d.ts +44 -0
- package/dist/esm/utils.js +41 -0
- package/dist/esm/utils.js.map +1 -0
- package/package.json +75 -0
- package/src/Asset.tsx +23 -0
- package/src/CatchBoundary.tsx +78 -0
- package/src/HeadContent.tsx +146 -0
- package/src/Match.tsx +356 -0
- package/src/Matches.tsx +348 -0
- package/src/RouterProvider.tsx +130 -0
- package/src/SafeFragment.tsx +3 -0
- package/src/ScriptOnce.tsx +30 -0
- package/src/Scripts.tsx +65 -0
- package/src/ScrollRestoration.tsx +65 -0
- package/src/Transitioner.tsx +152 -0
- package/src/awaited.tsx +49 -0
- package/src/fileRoute.ts +274 -0
- package/src/history.ts +9 -0
- package/src/index.tsx +359 -0
- package/src/lazyRouteComponent.tsx +114 -0
- package/src/link.tsx +1002 -0
- package/src/matchContext.tsx +10 -0
- package/src/not-found.tsx +69 -0
- package/src/redirects.ts +71 -0
- package/src/renderRouteNotFound.tsx +27 -0
- package/src/route.ts +1477 -0
- package/src/routeInfo.ts +239 -0
- package/src/router.ts +3066 -0
- package/src/routerContext.tsx +26 -0
- package/src/scroll-restoration.tsx +337 -0
- package/src/typePrimitives.ts +195 -0
- package/src/useBlocker.tsx +298 -0
- package/src/useCanGoBack.ts +5 -0
- package/src/useLoaderData.tsx +64 -0
- package/src/useLoaderDeps.tsx +52 -0
- package/src/useLocation.tsx +26 -0
- package/src/useMatch.tsx +96 -0
- package/src/useNavigate.tsx +61 -0
- package/src/useParams.tsx +83 -0
- package/src/useRouteContext.ts +62 -0
- package/src/useRouter.tsx +15 -0
- package/src/useRouterState.tsx +32 -0
- package/src/useSearch.tsx +84 -0
- package/src/utils.ts +96 -0
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import * as Solid from 'solid-js'
|
|
2
|
+
|
|
3
|
+
export const matchContext = Solid.createContext<
|
|
4
|
+
Solid.Accessor<string | undefined>
|
|
5
|
+
>(() => undefined)
|
|
6
|
+
|
|
7
|
+
// N.B. this only exists so we can conditionally call useContext on it when we are not interested in the nearest match
|
|
8
|
+
export const dummyMatchContext = Solid.createContext<
|
|
9
|
+
Solid.Accessor<string | undefined>
|
|
10
|
+
>(() => undefined)
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { CatchBoundary } from './CatchBoundary'
|
|
2
|
+
import { useRouterState } from './useRouterState'
|
|
3
|
+
import type * as Solid from 'solid-js'
|
|
4
|
+
import type { RegisteredRouter } from './router'
|
|
5
|
+
import type { RouteIds } from './routeInfo'
|
|
6
|
+
|
|
7
|
+
export type NotFoundError = {
|
|
8
|
+
/**
|
|
9
|
+
@deprecated
|
|
10
|
+
Use `routeId: rootRouteId` instead
|
|
11
|
+
*/
|
|
12
|
+
global?: boolean
|
|
13
|
+
/**
|
|
14
|
+
@private
|
|
15
|
+
Do not use this. It's used internally to indicate a path matching error
|
|
16
|
+
*/
|
|
17
|
+
_global?: boolean
|
|
18
|
+
data?: any
|
|
19
|
+
throw?: boolean
|
|
20
|
+
routeId?: RouteIds<RegisteredRouter['routeTree']>
|
|
21
|
+
headers?: HeadersInit
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
export function notFound(options: NotFoundError = {}) {
|
|
25
|
+
;(options as any).isNotFound = true
|
|
26
|
+
if (options.throw) throw options
|
|
27
|
+
return options
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
export function isNotFound(obj: any): obj is NotFoundError {
|
|
31
|
+
return !!obj?.isNotFound
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
export function CatchNotFound(props: {
|
|
35
|
+
fallback?: (error: NotFoundError) => Solid.JSX.Element
|
|
36
|
+
onCatch?: (error: Error) => void
|
|
37
|
+
children: Solid.JSX.Element
|
|
38
|
+
}) {
|
|
39
|
+
// TODO: Some way for the user to programmatically reset the not-found boundary?
|
|
40
|
+
const resetKey = useRouterState({
|
|
41
|
+
select: (s) => `not-found-${s.location.pathname}-${s.status}`,
|
|
42
|
+
})
|
|
43
|
+
|
|
44
|
+
return (
|
|
45
|
+
<CatchBoundary
|
|
46
|
+
getResetKey={() => resetKey()}
|
|
47
|
+
onCatch={(error) => {
|
|
48
|
+
if (isNotFound(error)) {
|
|
49
|
+
props.onCatch?.(error)
|
|
50
|
+
} else {
|
|
51
|
+
throw error
|
|
52
|
+
}
|
|
53
|
+
}}
|
|
54
|
+
errorComponent={({ error }: { error: Error }) => {
|
|
55
|
+
if (isNotFound(error)) {
|
|
56
|
+
return props.fallback?.(error)
|
|
57
|
+
} else {
|
|
58
|
+
throw error
|
|
59
|
+
}
|
|
60
|
+
}}
|
|
61
|
+
>
|
|
62
|
+
{props.children}
|
|
63
|
+
</CatchBoundary>
|
|
64
|
+
)
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
export function DefaultGlobalNotFound() {
|
|
68
|
+
return <p>Not Found</p>
|
|
69
|
+
}
|
package/src/redirects.ts
ADDED
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import type { NavigateOptions } from './link'
|
|
2
|
+
import type { RoutePaths } from './routeInfo'
|
|
3
|
+
import type { AnyRouter, RegisteredRouter } from './router'
|
|
4
|
+
import type { PickAsRequired } from '@tanstack/router-core'
|
|
5
|
+
|
|
6
|
+
export type AnyRedirect = Redirect<any, any, any, any, any>
|
|
7
|
+
|
|
8
|
+
export type Redirect<
|
|
9
|
+
TRouter extends AnyRouter = RegisteredRouter,
|
|
10
|
+
TFrom extends RoutePaths<TRouter['routeTree']> | string = '/',
|
|
11
|
+
TTo extends string | undefined = '.',
|
|
12
|
+
TMaskFrom extends RoutePaths<TRouter['routeTree']> | string = TFrom,
|
|
13
|
+
TMaskTo extends string = '.',
|
|
14
|
+
> = {
|
|
15
|
+
href?: string
|
|
16
|
+
/**
|
|
17
|
+
* @deprecated Use `statusCode` instead
|
|
18
|
+
**/
|
|
19
|
+
code?: number
|
|
20
|
+
statusCode?: number
|
|
21
|
+
throw?: any
|
|
22
|
+
headers?: HeadersInit
|
|
23
|
+
} & NavigateOptions<TRouter, TFrom, TTo, TMaskFrom, TMaskTo>
|
|
24
|
+
|
|
25
|
+
export type ResolvedRedirect<
|
|
26
|
+
TRouter extends AnyRouter = RegisteredRouter,
|
|
27
|
+
TFrom extends RoutePaths<TRouter['routeTree']> = '/',
|
|
28
|
+
TTo extends string = '',
|
|
29
|
+
TMaskFrom extends RoutePaths<TRouter['routeTree']> = TFrom,
|
|
30
|
+
TMaskTo extends string = '',
|
|
31
|
+
> = PickAsRequired<
|
|
32
|
+
Redirect<TRouter, TFrom, TTo, TMaskFrom, TMaskTo>,
|
|
33
|
+
'code' | 'statusCode' | 'headers'
|
|
34
|
+
> & {
|
|
35
|
+
href: string
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
export function redirect<
|
|
39
|
+
TRouter extends RegisteredRouter,
|
|
40
|
+
const TTo extends string | undefined,
|
|
41
|
+
const TFrom extends string = string,
|
|
42
|
+
const TMaskFrom extends string = TFrom,
|
|
43
|
+
const TMaskTo extends string = '',
|
|
44
|
+
>(
|
|
45
|
+
opts: Redirect<TRouter, TFrom, TTo, TMaskFrom, TMaskTo>,
|
|
46
|
+
): Redirect<TRouter, TFrom, TTo, TMaskFrom, TMaskTo> {
|
|
47
|
+
;(opts as any).isRedirect = true
|
|
48
|
+
opts.statusCode = opts.statusCode || opts.code || 307
|
|
49
|
+
opts.headers = opts.headers || {}
|
|
50
|
+
if (!opts.reloadDocument) {
|
|
51
|
+
opts.reloadDocument = false
|
|
52
|
+
try {
|
|
53
|
+
new URL(`${opts.href}`)
|
|
54
|
+
opts.reloadDocument = true
|
|
55
|
+
} catch {}
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
if (opts.throw) {
|
|
59
|
+
throw opts
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
return opts
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
export function isRedirect(obj: any): obj is AnyRedirect {
|
|
66
|
+
return !!obj?.isRedirect
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
export function isResolvedRedirect(obj: any): obj is ResolvedRedirect {
|
|
70
|
+
return !!obj?.isRedirect && obj.href
|
|
71
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import warning from 'tiny-warning'
|
|
2
|
+
import { DefaultGlobalNotFound } from './not-found'
|
|
3
|
+
import type { AnyRouter } from './router'
|
|
4
|
+
import type { AnyRoute } from './route'
|
|
5
|
+
|
|
6
|
+
export function renderRouteNotFound(
|
|
7
|
+
router: AnyRouter,
|
|
8
|
+
route: AnyRoute,
|
|
9
|
+
data: any,
|
|
10
|
+
) {
|
|
11
|
+
if (!route.options.notFoundComponent) {
|
|
12
|
+
if (router.options.defaultNotFoundComponent) {
|
|
13
|
+
return <router.options.defaultNotFoundComponent data={data} />
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
if (process.env.NODE_ENV === 'development') {
|
|
17
|
+
warning(
|
|
18
|
+
route.options.notFoundComponent,
|
|
19
|
+
`A notFoundError was encountered on the route with ID "${route.id}", but a notFoundComponent option was not configured, nor was a router level defaultNotFoundComponent configured. Consider configuring at least one of these to avoid TanStack Router's overly generic defaultNotFoundComponent (<div>Not Found<div>)`,
|
|
20
|
+
)
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
return <DefaultGlobalNotFound />
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
return <route.options.notFoundComponent data={data} />
|
|
27
|
+
}
|