@tanstack/solid-router 1.132.0-alpha.1 → 1.132.0-alpha.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.
@@ -36,7 +36,11 @@ const Match = (props) => {
36
36
  select: (s) => {
37
37
  const match = s.matches.find((d) => d.id === props.matchId);
38
38
  invariant(match, `Could not find match for matchId "${props.matchId}". Please file an issue!`);
39
- return routerCore.pick(match, ["routeId", "ssr", "_displayPending"]);
39
+ return {
40
+ routeId: match.routeId,
41
+ ssr: match.ssr,
42
+ _displayPending: match._displayPending
43
+ };
40
44
  }
41
45
  });
42
46
  const route = () => router.routesById[matchState().routeId];
@@ -175,8 +179,7 @@ const MatchInner = (props) => {
175
179
  const router = useRouter.useRouter();
176
180
  const matchState = useRouterState.useRouterState({
177
181
  select: (s) => {
178
- const matchIndex = s.matches.findIndex((d) => d.id === props.matchId);
179
- const match2 = s.matches[matchIndex];
182
+ const match2 = s.matches.find((d) => d.id === props.matchId);
180
183
  const routeId = match2.routeId;
181
184
  const remountFn = router.routesById[routeId].options.remountDeps ?? router.options.defaultRemountDeps;
182
185
  const remountDeps = remountFn?.({
@@ -189,7 +192,13 @@ const MatchInner = (props) => {
189
192
  return {
190
193
  key,
191
194
  routeId,
192
- match: routerCore.pick(match2, ["id", "status", "error", "_forcePending", "_displayPending"])
195
+ match: {
196
+ id: match2.id,
197
+ status: match2.status,
198
+ error: match2.error,
199
+ _forcePending: match2._forcePending,
200
+ _displayPending: match2._displayPending
201
+ }
193
202
  };
194
203
  }
195
204
  });
@@ -198,10 +207,9 @@ const MatchInner = (props) => {
198
207
  const out = () => {
199
208
  const Comp = route().options.component ?? router.options.defaultComponent;
200
209
  if (Comp) {
210
+ const key = matchState().key ?? matchState().match.id;
201
211
  return Solid.createComponent(Solid__namespace.Show, {
202
- get when() {
203
- return matchState().match.id;
204
- },
212
+ when: key,
205
213
  keyed: true,
206
214
  get children() {
207
215
  return Solid.createComponent(Comp, {});
@@ -217,7 +225,7 @@ const MatchInner = (props) => {
217
225
  return match()._displayPending;
218
226
  },
219
227
  children: (_) => {
220
- const [displayPendingResult] = Solid__namespace.createResource(() => router.getMatch(match().id)?.displayPendingPromise);
228
+ const [displayPendingResult] = Solid__namespace.createResource(() => router.getMatch(match().id)?._nonReactive.displayPendingPromise);
221
229
  return Solid.memo(displayPendingResult);
222
230
  }
223
231
  }), Solid.createComponent(Solid__namespace.Match, {
@@ -225,7 +233,7 @@ const MatchInner = (props) => {
225
233
  return match()._forcePending;
226
234
  },
227
235
  children: (_) => {
228
- const [minPendingResult] = Solid__namespace.createResource(() => router.getMatch(match().id)?.minPendingPromise);
236
+ const [minPendingResult] = Solid__namespace.createResource(() => router.getMatch(match().id)?._nonReactive.minPendingPromise);
229
237
  return Solid.memo(minPendingResult);
230
238
  }
231
239
  }), Solid.createComponent(Solid__namespace.Match, {
@@ -234,27 +242,22 @@ const MatchInner = (props) => {
234
242
  },
235
243
  children: (_) => {
236
244
  const pendingMinMs = route().options.pendingMinMs ?? router.options.defaultPendingMinMs;
237
- if (pendingMinMs && !router.getMatch(match().id)?.minPendingPromise) {
238
- if (!router.isServer) {
239
- const minPendingPromise = routerCore.createControlledPromise();
240
- Promise.resolve().then(() => {
241
- router.updateMatch(match().id, (prev) => ({
242
- ...prev,
243
- minPendingPromise
244
- }));
245
- });
246
- setTimeout(() => {
247
- minPendingPromise.resolve();
248
- router.updateMatch(match().id, (prev) => ({
249
- ...prev,
250
- minPendingPromise: void 0
251
- }));
252
- }, pendingMinMs);
245
+ if (pendingMinMs) {
246
+ const routerMatch = router.getMatch(match().id);
247
+ if (routerMatch && !routerMatch._nonReactive.minPendingPromise) {
248
+ if (!router.isServer) {
249
+ const minPendingPromise = routerCore.createControlledPromise();
250
+ routerMatch._nonReactive.minPendingPromise = minPendingPromise;
251
+ setTimeout(() => {
252
+ minPendingPromise.resolve();
253
+ routerMatch._nonReactive.minPendingPromise = void 0;
254
+ }, pendingMinMs);
255
+ }
253
256
  }
254
257
  }
255
258
  const [loaderResult] = Solid__namespace.createResource(async () => {
256
259
  await new Promise((r) => setTimeout(r, 0));
257
- return router.getMatch(match().id)?.loadPromise;
260
+ return router.getMatch(match().id)?._nonReactive.loadPromise;
258
261
  });
259
262
  return Solid.memo(loaderResult);
260
263
  }
@@ -274,7 +277,7 @@ const MatchInner = (props) => {
274
277
  invariant(routerCore.isRedirect(match().error), "Expected a redirect error");
275
278
  const [loaderResult] = Solid__namespace.createResource(async () => {
276
279
  await new Promise((r) => setTimeout(r, 0));
277
- return router.getMatch(match().id)?.loadPromise;
280
+ return router.getMatch(match().id)?._nonReactive.loadPromise;
278
281
  });
279
282
  return Solid.memo(loaderResult);
280
283
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Match.cjs","sources":["../../src/Match.tsx"],"sourcesContent":["import * as Solid from 'solid-js'\nimport invariant from 'tiny-invariant'\nimport warning from 'tiny-warning'\nimport {\n createControlledPromise,\n getLocationChangeInfo,\n isNotFound,\n isRedirect,\n pick,\n rootRouteId,\n} from '@tanstack/router-core'\nimport { Dynamic } from 'solid-js/web'\nimport { CatchBoundary, ErrorComponent } from './CatchBoundary'\nimport { useRouterState } from './useRouterState'\nimport { useRouter } from './useRouter'\nimport { CatchNotFound } from './not-found'\nimport { matchContext } from './matchContext'\nimport { SafeFragment } from './SafeFragment'\nimport { renderRouteNotFound } from './renderRouteNotFound'\nimport { ScrollRestoration } from './scroll-restoration'\nimport type { AnyRoute, RootRouteOptions } from '@tanstack/router-core'\n\nexport const Match = (props: { matchId: string }) => {\n const router = useRouter()\n const matchState = useRouterState({\n select: (s) => {\n const match = s.matches.find((d) => d.id === props.matchId)\n\n invariant(\n match,\n `Could not find match for matchId \"${props.matchId}\". Please file an issue!`,\n )\n return pick(match, ['routeId', 'ssr', '_displayPending'])\n },\n })\n\n const route: () => AnyRoute = () => router.routesById[matchState().routeId]\n\n const PendingComponent = () =>\n route().options.pendingComponent ?? router.options.defaultPendingComponent\n\n const routeErrorComponent = () =>\n route().options.errorComponent ?? router.options.defaultErrorComponent\n\n const routeOnCatch = () =>\n route().options.onCatch ?? router.options.defaultOnCatch\n\n const routeNotFoundComponent = () =>\n route().isRoot\n ? // If it's the root route, use the globalNotFound option, with fallback to the notFoundRoute's component\n (route().options.notFoundComponent ??\n router.options.notFoundRoute?.options.component)\n : route().options.notFoundComponent\n\n const resolvedNoSsr =\n matchState().ssr === false || matchState().ssr === 'data-only'\n\n const ResolvedSuspenseBoundary = () =>\n // If we're on the root route, allow forcefully wrapping in suspense\n (!route().isRoot ||\n route().options.wrapInSuspense ||\n resolvedNoSsr ||\n matchState()._displayPending) &&\n (route().options.wrapInSuspense ??\n PendingComponent() ??\n ((route().options.errorComponent as any)?.preload || resolvedNoSsr))\n ? Solid.Suspense\n : SafeFragment\n\n const ResolvedCatchBoundary = () =>\n routeErrorComponent() ? CatchBoundary : SafeFragment\n\n const ResolvedNotFoundBoundary = () =>\n routeNotFoundComponent() ? CatchNotFound : SafeFragment\n\n const resetKey = useRouterState({\n select: (s) => s.loadedAt,\n })\n\n const parentRouteId = useRouterState({\n select: (s) => {\n const index = s.matches.findIndex((d) => d.id === props.matchId)\n return s.matches[index - 1]?.routeId as string\n },\n })\n\n const ShellComponent = route().isRoot\n ? ((route().options as RootRouteOptions).shellComponent ?? SafeFragment)\n : SafeFragment\n\n return (\n <ShellComponent>\n <matchContext.Provider value={() => props.matchId}>\n <Dynamic\n component={ResolvedSuspenseBoundary()}\n fallback={<Dynamic component={PendingComponent()} />}\n >\n <Dynamic\n component={ResolvedCatchBoundary()}\n getResetKey={() => resetKey()}\n errorComponent={routeErrorComponent() || ErrorComponent}\n onCatch={(error: Error) => {\n // Forward not found errors (we don't want to show the error component for these)\n if (isNotFound(error)) throw error\n warning(false, `Error in route match: ${props.matchId}`)\n routeOnCatch()?.(error)\n }}\n >\n <Dynamic\n component={ResolvedNotFoundBoundary()}\n fallback={(error: any) => {\n // If the current not found handler doesn't exist or it has a\n // route ID which doesn't match the current route, rethrow the error\n if (\n !routeNotFoundComponent() ||\n (error.routeId && error.routeId !== matchState().routeId) ||\n (!error.routeId && !route().isRoot)\n )\n throw error\n\n return (\n <Dynamic component={routeNotFoundComponent()} {...error} />\n )\n }}\n >\n <Solid.Switch>\n <Solid.Match when={resolvedNoSsr}>\n <Solid.Show\n when={!router.isServer}\n fallback={<Dynamic component={PendingComponent()} />}\n >\n <MatchInner matchId={props.matchId} />\n </Solid.Show>\n </Solid.Match>\n <Solid.Match when={!resolvedNoSsr}>\n <MatchInner matchId={props.matchId} />\n </Solid.Match>\n </Solid.Switch>\n </Dynamic>\n </Dynamic>\n </Dynamic>\n </matchContext.Provider>\n\n {parentRouteId() === rootRouteId ? (\n <>\n <OnRendered />\n <ScrollRestoration />\n </>\n ) : null}\n </ShellComponent>\n )\n}\n\n// On Rendered can't happen above the root layout because it actually\n// renders a dummy dom element to track the rendered state of the app.\n// We render a script tag with a key that changes based on the current\n// location state.__TSR_key. Also, because it's below the root layout, it\n// allows us to fire onRendered events even after a hydration mismatch\n// error that occurred above the root layout (like bad head/link tags,\n// which is common).\nfunction OnRendered() {\n const router = useRouter()\n\n const location = useRouterState({\n select: (s) => {\n return s.resolvedLocation?.state.__TSR_key\n },\n })\n Solid.createEffect(\n Solid.on([location], () => {\n router.emit({\n type: 'onRendered',\n ...getLocationChangeInfo(router.state),\n })\n }),\n )\n return null\n}\n\nexport const MatchInner = (props: { matchId: string }): any => {\n const router = useRouter()\n\n const matchState = useRouterState({\n select: (s) => {\n const matchIndex = s.matches.findIndex((d) => d.id === props.matchId)\n const match = s.matches[matchIndex]!\n const routeId = match.routeId as string\n\n const remountFn =\n (router.routesById[routeId] as AnyRoute).options.remountDeps ??\n router.options.defaultRemountDeps\n const remountDeps = remountFn?.({\n routeId,\n loaderDeps: match.loaderDeps,\n params: match._strictParams,\n search: match._strictSearch,\n })\n const key = remountDeps ? JSON.stringify(remountDeps) : undefined\n\n return {\n key,\n routeId,\n match: pick(match, [\n 'id',\n 'status',\n 'error',\n '_forcePending',\n '_displayPending',\n ]),\n }\n },\n })\n\n const route = () => router.routesById[matchState().routeId]!\n\n const match = () => matchState().match\n\n const out = () => {\n const Comp = route().options.component ?? router.options.defaultComponent\n if (Comp) {\n return (\n <Solid.Show when={matchState().match.id} keyed>\n <Comp />\n </Solid.Show>\n )\n }\n return <Outlet />\n }\n\n return (\n <Solid.Switch>\n <Solid.Match when={match()._displayPending}>\n {(_) => {\n const [displayPendingResult] = Solid.createResource(\n () => router.getMatch(match().id)?.displayPendingPromise,\n )\n\n return <>{displayPendingResult()}</>\n }}\n </Solid.Match>\n <Solid.Match when={match()._forcePending}>\n {(_) => {\n const [minPendingResult] = Solid.createResource(\n () => router.getMatch(match().id)?.minPendingPromise,\n )\n\n return <>{minPendingResult()}</>\n }}\n </Solid.Match>\n <Solid.Match when={match().status === 'pending'}>\n {(_) => {\n const pendingMinMs =\n route().options.pendingMinMs ?? router.options.defaultPendingMinMs\n\n if (pendingMinMs && !router.getMatch(match().id)?.minPendingPromise) {\n // Create a promise that will resolve after the minPendingMs\n if (!router.isServer) {\n const minPendingPromise = createControlledPromise<void>()\n\n Promise.resolve().then(() => {\n router.updateMatch(match().id, (prev) => ({\n ...prev,\n minPendingPromise,\n }))\n })\n\n setTimeout(() => {\n minPendingPromise.resolve()\n\n // We've handled the minPendingPromise, so we can delete it\n router.updateMatch(match().id, (prev) => ({\n ...prev,\n minPendingPromise: undefined,\n }))\n }, pendingMinMs)\n }\n }\n\n const [loaderResult] = Solid.createResource(async () => {\n await new Promise((r) => setTimeout(r, 0))\n return router.getMatch(match().id)?.loadPromise\n })\n\n return <>{loaderResult()}</>\n }}\n </Solid.Match>\n <Solid.Match when={match().status === 'notFound'}>\n {(_) => {\n invariant(isNotFound(match().error), 'Expected a notFound error')\n\n return renderRouteNotFound(router, route(), match().error)\n }}\n </Solid.Match>\n <Solid.Match when={match().status === 'redirected'}>\n {(_) => {\n invariant(isRedirect(match().error), 'Expected a redirect error')\n\n const [loaderResult] = Solid.createResource(async () => {\n await new Promise((r) => setTimeout(r, 0))\n return router.getMatch(match().id)?.loadPromise\n })\n\n return <>{loaderResult()}</>\n }}\n </Solid.Match>\n <Solid.Match when={match().status === 'error'}>\n {(_) => {\n if (router.isServer) {\n const RouteErrorComponent =\n (route().options.errorComponent ??\n router.options.defaultErrorComponent) ||\n ErrorComponent\n\n return (\n <RouteErrorComponent\n error={match().error}\n info={{\n componentStack: '',\n }}\n />\n )\n }\n\n throw match().error\n }}\n </Solid.Match>\n <Solid.Match when={match().status === 'success'}>{out()}</Solid.Match>\n </Solid.Switch>\n )\n}\n\nexport const Outlet = () => {\n const router = useRouter()\n const matchId = Solid.useContext(matchContext)\n const routeId = useRouterState({\n select: (s) => s.matches.find((d) => d.id === matchId())?.routeId as string,\n })\n\n const route = () => router.routesById[routeId()]!\n\n const parentGlobalNotFound = useRouterState({\n select: (s) => {\n const matches = s.matches\n const parentMatch = matches.find((d) => d.id === matchId())\n invariant(\n parentMatch,\n `Could not find parent match for matchId \"${matchId()}\"`,\n )\n return parentMatch.globalNotFound\n },\n })\n\n const childMatchId = useRouterState({\n select: (s) => {\n const matches = s.matches\n const index = matches.findIndex((d) => d.id === matchId())\n const v = matches[index + 1]?.id\n return v\n },\n })\n\n return (\n <Solid.Switch>\n <Solid.Match when={parentGlobalNotFound()}>\n {renderRouteNotFound(router, route(), undefined)}\n </Solid.Match>\n <Solid.Match when={childMatchId()}>\n {(matchId) => {\n // const nextMatch = <Match matchId={matchId()} />\n\n return (\n <Solid.Show\n when={matchId() === rootRouteId}\n fallback={<Match matchId={matchId()} />}\n >\n <Solid.Suspense\n fallback={\n <Dynamic component={router.options.defaultPendingComponent} />\n }\n >\n <Match matchId={matchId()} />\n </Solid.Suspense>\n </Solid.Show>\n )\n }}\n </Solid.Match>\n </Solid.Switch>\n )\n}\n"],"names":["Match","props","router","useRouter","matchState","useRouterState","select","s","match","matches","find","d","id","matchId","invariant","pick","route","routesById","routeId","PendingComponent","options","pendingComponent","defaultPendingComponent","routeErrorComponent","errorComponent","defaultErrorComponent","routeOnCatch","onCatch","defaultOnCatch","routeNotFoundComponent","isRoot","notFoundComponent","notFoundRoute","component","resolvedNoSsr","ssr","ResolvedSuspenseBoundary","wrapInSuspense","_displayPending","preload","Solid","Suspense","SafeFragment","ResolvedCatchBoundary","CatchBoundary","ResolvedNotFoundBoundary","CatchNotFound","resetKey","loadedAt","parentRouteId","index","findIndex","ShellComponent","shellComponent","_$createComponent","children","matchContext","Provider","value","Dynamic","fallback","getResetKey","ErrorComponent","error","isNotFound","warning","_$mergeProps","Switch","when","Show","isServer","MatchInner","_$memo","rootRouteId","OnRendered","ScrollRestoration","location","resolvedLocation","state","__TSR_key","createEffect","on","emit","type","getLocationChangeInfo","matchIndex","remountFn","remountDeps","defaultRemountDeps","loaderDeps","params","_strictParams","search","_strictSearch","key","JSON","stringify","undefined","out","Comp","defaultComponent","keyed","Outlet","_","displayPendingResult","createResource","getMatch","displayPendingPromise","_forcePending","minPendingResult","minPendingPromise","status","pendingMinMs","defaultPendingMinMs","createControlledPromise","Promise","resolve","then","updateMatch","prev","setTimeout","loaderResult","r","loadPromise","renderRouteNotFound","isRedirect","RouteErrorComponent","info","componentStack","useContext","parentGlobalNotFound","parentMatch","globalNotFound","childMatchId","v"],"mappings":"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"}
1
+ {"version":3,"file":"Match.cjs","sources":["../../src/Match.tsx"],"sourcesContent":["import * as Solid from 'solid-js'\nimport invariant from 'tiny-invariant'\nimport warning from 'tiny-warning'\nimport {\n createControlledPromise,\n getLocationChangeInfo,\n isNotFound,\n isRedirect,\n rootRouteId,\n} from '@tanstack/router-core'\nimport { Dynamic } from 'solid-js/web'\nimport { CatchBoundary, ErrorComponent } from './CatchBoundary'\nimport { useRouterState } from './useRouterState'\nimport { useRouter } from './useRouter'\nimport { CatchNotFound } from './not-found'\nimport { matchContext } from './matchContext'\nimport { SafeFragment } from './SafeFragment'\nimport { renderRouteNotFound } from './renderRouteNotFound'\nimport { ScrollRestoration } from './scroll-restoration'\nimport type { AnyRoute, RootRouteOptions } from '@tanstack/router-core'\n\nexport const Match = (props: { matchId: string }) => {\n const router = useRouter()\n const matchState = useRouterState({\n select: (s) => {\n const match = s.matches.find((d) => d.id === props.matchId)\n\n invariant(\n match,\n `Could not find match for matchId \"${props.matchId}\". Please file an issue!`,\n )\n return {\n routeId: match.routeId,\n ssr: match.ssr,\n _displayPending: match._displayPending,\n }\n },\n })\n\n const route: () => AnyRoute = () => router.routesById[matchState().routeId]\n\n const PendingComponent = () =>\n route().options.pendingComponent ?? router.options.defaultPendingComponent\n\n const routeErrorComponent = () =>\n route().options.errorComponent ?? router.options.defaultErrorComponent\n\n const routeOnCatch = () =>\n route().options.onCatch ?? router.options.defaultOnCatch\n\n const routeNotFoundComponent = () =>\n route().isRoot\n ? // If it's the root route, use the globalNotFound option, with fallback to the notFoundRoute's component\n (route().options.notFoundComponent ??\n router.options.notFoundRoute?.options.component)\n : route().options.notFoundComponent\n\n const resolvedNoSsr =\n matchState().ssr === false || matchState().ssr === 'data-only'\n\n const ResolvedSuspenseBoundary = () =>\n // If we're on the root route, allow forcefully wrapping in suspense\n (!route().isRoot ||\n route().options.wrapInSuspense ||\n resolvedNoSsr ||\n matchState()._displayPending) &&\n (route().options.wrapInSuspense ??\n PendingComponent() ??\n ((route().options.errorComponent as any)?.preload || resolvedNoSsr))\n ? Solid.Suspense\n : SafeFragment\n\n const ResolvedCatchBoundary = () =>\n routeErrorComponent() ? CatchBoundary : SafeFragment\n\n const ResolvedNotFoundBoundary = () =>\n routeNotFoundComponent() ? CatchNotFound : SafeFragment\n\n const resetKey = useRouterState({\n select: (s) => s.loadedAt,\n })\n\n const parentRouteId = useRouterState({\n select: (s) => {\n const index = s.matches.findIndex((d) => d.id === props.matchId)\n return s.matches[index - 1]?.routeId as string\n },\n })\n\n const ShellComponent = route().isRoot\n ? ((route().options as RootRouteOptions).shellComponent ?? SafeFragment)\n : SafeFragment\n\n return (\n <ShellComponent>\n <matchContext.Provider value={() => props.matchId}>\n <Dynamic\n component={ResolvedSuspenseBoundary()}\n fallback={<Dynamic component={PendingComponent()} />}\n >\n <Dynamic\n component={ResolvedCatchBoundary()}\n getResetKey={() => resetKey()}\n errorComponent={routeErrorComponent() || ErrorComponent}\n onCatch={(error: Error) => {\n // Forward not found errors (we don't want to show the error component for these)\n if (isNotFound(error)) throw error\n warning(false, `Error in route match: ${props.matchId}`)\n routeOnCatch()?.(error)\n }}\n >\n <Dynamic\n component={ResolvedNotFoundBoundary()}\n fallback={(error: any) => {\n // If the current not found handler doesn't exist or it has a\n // route ID which doesn't match the current route, rethrow the error\n if (\n !routeNotFoundComponent() ||\n (error.routeId && error.routeId !== matchState().routeId) ||\n (!error.routeId && !route().isRoot)\n )\n throw error\n\n return (\n <Dynamic component={routeNotFoundComponent()} {...error} />\n )\n }}\n >\n <Solid.Switch>\n <Solid.Match when={resolvedNoSsr}>\n <Solid.Show\n when={!router.isServer}\n fallback={<Dynamic component={PendingComponent()} />}\n >\n <MatchInner matchId={props.matchId} />\n </Solid.Show>\n </Solid.Match>\n <Solid.Match when={!resolvedNoSsr}>\n <MatchInner matchId={props.matchId} />\n </Solid.Match>\n </Solid.Switch>\n </Dynamic>\n </Dynamic>\n </Dynamic>\n </matchContext.Provider>\n\n {parentRouteId() === rootRouteId ? (\n <>\n <OnRendered />\n <ScrollRestoration />\n </>\n ) : null}\n </ShellComponent>\n )\n}\n\n// On Rendered can't happen above the root layout because it actually\n// renders a dummy dom element to track the rendered state of the app.\n// We render a script tag with a key that changes based on the current\n// location state.__TSR_key. Also, because it's below the root layout, it\n// allows us to fire onRendered events even after a hydration mismatch\n// error that occurred above the root layout (like bad head/link tags,\n// which is common).\nfunction OnRendered() {\n const router = useRouter()\n\n const location = useRouterState({\n select: (s) => {\n return s.resolvedLocation?.state.__TSR_key\n },\n })\n Solid.createEffect(\n Solid.on([location], () => {\n router.emit({\n type: 'onRendered',\n ...getLocationChangeInfo(router.state),\n })\n }),\n )\n return null\n}\n\nexport const MatchInner = (props: { matchId: string }): any => {\n const router = useRouter()\n\n const matchState = useRouterState({\n select: (s) => {\n const match = s.matches.find((d) => d.id === props.matchId)!\n const routeId = match.routeId as string\n\n const remountFn =\n (router.routesById[routeId] as AnyRoute).options.remountDeps ??\n router.options.defaultRemountDeps\n const remountDeps = remountFn?.({\n routeId,\n loaderDeps: match.loaderDeps,\n params: match._strictParams,\n search: match._strictSearch,\n })\n const key = remountDeps ? JSON.stringify(remountDeps) : undefined\n\n return {\n key,\n routeId,\n match: {\n id: match.id,\n status: match.status,\n error: match.error,\n _forcePending: match._forcePending,\n _displayPending: match._displayPending,\n },\n }\n },\n })\n\n const route = () => router.routesById[matchState().routeId]!\n\n const match = () => matchState().match\n\n const out = () => {\n const Comp = route().options.component ?? router.options.defaultComponent\n if (Comp) {\n const key = matchState().key ?? matchState().match.id\n return (\n <Solid.Show when={key} keyed>\n <Comp />\n </Solid.Show>\n )\n }\n return <Outlet />\n }\n\n return (\n <Solid.Switch>\n <Solid.Match when={match()._displayPending}>\n {(_) => {\n const [displayPendingResult] = Solid.createResource(\n () =>\n router.getMatch(match().id)?._nonReactive.displayPendingPromise,\n )\n\n return <>{displayPendingResult()}</>\n }}\n </Solid.Match>\n <Solid.Match when={match()._forcePending}>\n {(_) => {\n const [minPendingResult] = Solid.createResource(\n () => router.getMatch(match().id)?._nonReactive.minPendingPromise,\n )\n\n return <>{minPendingResult()}</>\n }}\n </Solid.Match>\n <Solid.Match when={match().status === 'pending'}>\n {(_) => {\n const pendingMinMs =\n route().options.pendingMinMs ?? router.options.defaultPendingMinMs\n\n if (pendingMinMs) {\n const routerMatch = router.getMatch(match().id)\n if (routerMatch && !routerMatch._nonReactive.minPendingPromise) {\n // Create a promise that will resolve after the minPendingMs\n if (!router.isServer) {\n const minPendingPromise = createControlledPromise<void>()\n\n routerMatch._nonReactive.minPendingPromise = minPendingPromise\n\n setTimeout(() => {\n minPendingPromise.resolve()\n // We've handled the minPendingPromise, so we can delete it\n routerMatch._nonReactive.minPendingPromise = undefined\n }, pendingMinMs)\n }\n }\n }\n\n const [loaderResult] = Solid.createResource(async () => {\n await new Promise((r) => setTimeout(r, 0))\n return router.getMatch(match().id)?._nonReactive.loadPromise\n })\n\n return <>{loaderResult()}</>\n }}\n </Solid.Match>\n <Solid.Match when={match().status === 'notFound'}>\n {(_) => {\n invariant(isNotFound(match().error), 'Expected a notFound error')\n\n return renderRouteNotFound(router, route(), match().error)\n }}\n </Solid.Match>\n <Solid.Match when={match().status === 'redirected'}>\n {(_) => {\n invariant(isRedirect(match().error), 'Expected a redirect error')\n\n const [loaderResult] = Solid.createResource(async () => {\n await new Promise((r) => setTimeout(r, 0))\n return router.getMatch(match().id)?._nonReactive.loadPromise\n })\n\n return <>{loaderResult()}</>\n }}\n </Solid.Match>\n <Solid.Match when={match().status === 'error'}>\n {(_) => {\n if (router.isServer) {\n const RouteErrorComponent =\n (route().options.errorComponent ??\n router.options.defaultErrorComponent) ||\n ErrorComponent\n\n return (\n <RouteErrorComponent\n error={match().error}\n info={{\n componentStack: '',\n }}\n />\n )\n }\n\n throw match().error\n }}\n </Solid.Match>\n <Solid.Match when={match().status === 'success'}>{out()}</Solid.Match>\n </Solid.Switch>\n )\n}\n\nexport const Outlet = () => {\n const router = useRouter()\n const matchId = Solid.useContext(matchContext)\n const routeId = useRouterState({\n select: (s) => s.matches.find((d) => d.id === matchId())?.routeId as string,\n })\n\n const route = () => router.routesById[routeId()]!\n\n const parentGlobalNotFound = useRouterState({\n select: (s) => {\n const matches = s.matches\n const parentMatch = matches.find((d) => d.id === matchId())\n invariant(\n parentMatch,\n `Could not find parent match for matchId \"${matchId()}\"`,\n )\n return parentMatch.globalNotFound\n },\n })\n\n const childMatchId = useRouterState({\n select: (s) => {\n const matches = s.matches\n const index = matches.findIndex((d) => d.id === matchId())\n const v = matches[index + 1]?.id\n return v\n },\n })\n\n return (\n <Solid.Switch>\n <Solid.Match when={parentGlobalNotFound()}>\n {renderRouteNotFound(router, route(), undefined)}\n </Solid.Match>\n <Solid.Match when={childMatchId()}>\n {(matchId) => {\n // const nextMatch = <Match matchId={matchId()} />\n\n return (\n <Solid.Show\n when={matchId() === rootRouteId}\n fallback={<Match matchId={matchId()} />}\n >\n <Solid.Suspense\n fallback={\n <Dynamic component={router.options.defaultPendingComponent} />\n }\n >\n <Match matchId={matchId()} />\n </Solid.Suspense>\n </Solid.Show>\n )\n }}\n </Solid.Match>\n </Solid.Switch>\n )\n}\n"],"names":["Match","props","router","useRouter","matchState","useRouterState","select","s","match","matches","find","d","id","matchId","invariant","routeId","ssr","_displayPending","route","routesById","PendingComponent","options","pendingComponent","defaultPendingComponent","routeErrorComponent","errorComponent","defaultErrorComponent","routeOnCatch","onCatch","defaultOnCatch","routeNotFoundComponent","isRoot","notFoundComponent","notFoundRoute","component","resolvedNoSsr","ResolvedSuspenseBoundary","wrapInSuspense","preload","Solid","Suspense","SafeFragment","ResolvedCatchBoundary","CatchBoundary","ResolvedNotFoundBoundary","CatchNotFound","resetKey","loadedAt","parentRouteId","index","findIndex","ShellComponent","shellComponent","_$createComponent","children","matchContext","Provider","value","Dynamic","fallback","getResetKey","ErrorComponent","error","isNotFound","warning","_$mergeProps","Switch","when","Show","isServer","MatchInner","_$memo","rootRouteId","OnRendered","ScrollRestoration","location","resolvedLocation","state","__TSR_key","createEffect","on","emit","type","getLocationChangeInfo","remountFn","remountDeps","defaultRemountDeps","loaderDeps","params","_strictParams","search","_strictSearch","key","JSON","stringify","undefined","status","_forcePending","out","Comp","defaultComponent","keyed","Outlet","_","displayPendingResult","createResource","getMatch","_nonReactive","displayPendingPromise","minPendingResult","minPendingPromise","pendingMinMs","defaultPendingMinMs","routerMatch","createControlledPromise","setTimeout","resolve","loaderResult","Promise","r","loadPromise","renderRouteNotFound","isRedirect","RouteErrorComponent","info","componentStack","useContext","parentGlobalNotFound","parentMatch","globalNotFound","childMatchId","v"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"route.cjs","sources":["../../src/route.tsx"],"sourcesContent":["import {\n BaseRootRoute,\n BaseRoute,\n BaseRouteApi,\n notFound,\n} from '@tanstack/router-core'\nimport { Link } from './link'\nimport { useLoaderData } from './useLoaderData'\nimport { useLoaderDeps } from './useLoaderDeps'\nimport { useParams } from './useParams'\nimport { useSearch } from './useSearch'\nimport { useNavigate } from './useNavigate'\nimport { useMatch } from './useMatch'\nimport { useRouter } from './useRouter'\nimport type {\n AnyContext,\n AnyRoute,\n AnyRouter,\n ConstrainLiteral,\n ErrorComponentProps,\n NotFoundError,\n NotFoundRouteProps,\n RegisteredRouter,\n ResolveFullPath,\n ResolveId,\n ResolveParams,\n RootRoute as RootRouteCore,\n RootRouteId,\n RootRouteOptions,\n RouteConstraints,\n Route as RouteCore,\n RouteIds,\n RouteMask,\n RouteOptions,\n RouteTypesById,\n RouterCore,\n ToMaskOptions,\n UseNavigateResult,\n} from '@tanstack/router-core'\nimport type { UseLoaderDataRoute } from './useLoaderData'\nimport type { UseMatchRoute } from './useMatch'\nimport type { UseLoaderDepsRoute } from './useLoaderDeps'\nimport type { UseParamsRoute } from './useParams'\nimport type { UseSearchRoute } from './useSearch'\nimport type * as Solid from 'solid-js'\nimport type { UseRouteContextRoute } from './useRouteContext'\nimport type { LinkComponentRoute } from './link'\n\ndeclare module '@tanstack/router-core' {\n export interface UpdatableRouteOptionsExtensions {\n component?: RouteComponent\n errorComponent?: false | null | ErrorRouteComponent\n notFoundComponent?: NotFoundRouteComponent\n pendingComponent?: RouteComponent\n }\n\n export interface RootRouteOptionsExtensions {\n shellComponent?: ({\n children,\n }: {\n children: Solid.JSX.Element\n }) => Solid.JSX.Element\n }\n\n export interface RouteExtensions<\n in out TId extends string,\n in out TFullPath extends string,\n > {\n useMatch: UseMatchRoute<TId>\n useRouteContext: UseRouteContextRoute<TId>\n useSearch: UseSearchRoute<TId>\n useParams: UseParamsRoute<TId>\n useLoaderDeps: UseLoaderDepsRoute<TId>\n useLoaderData: UseLoaderDataRoute<TId>\n useNavigate: () => UseNavigateResult<TFullPath>\n Link: LinkComponentRoute<TFullPath>\n }\n}\n\nexport function getRouteApi<\n const TId,\n TRouter extends AnyRouter = RegisteredRouter,\n>(id: ConstrainLiteral<TId, RouteIds<TRouter['routeTree']>>) {\n return new RouteApi<TId, TRouter>({ id })\n}\n\nexport class RouteApi<\n TId,\n TRouter extends AnyRouter = RegisteredRouter,\n> extends BaseRouteApi<TId, TRouter> {\n /**\n * @deprecated Use the `getRouteApi` function instead.\n */\n constructor({ id }: { id: TId }) {\n super({ id })\n }\n\n useMatch: UseMatchRoute<TId> = (opts) => {\n return useMatch({\n select: opts?.select,\n from: this.id,\n } as any) as any\n }\n\n useRouteContext: UseRouteContextRoute<TId> = (opts) => {\n return useMatch({\n from: this.id as any,\n select: (d) => (opts?.select ? opts.select(d.context) : d.context),\n }) as any\n }\n\n useSearch: UseSearchRoute<TId> = (opts) => {\n return useSearch({\n select: opts?.select,\n from: this.id,\n } as any) as any\n }\n\n useParams: UseParamsRoute<TId> = (opts) => {\n return useParams({\n select: opts?.select,\n from: this.id,\n } as any) as any\n }\n\n useLoaderDeps: UseLoaderDepsRoute<TId> = (opts) => {\n return useLoaderDeps({ ...opts, from: this.id, strict: false } as any)\n }\n\n useLoaderData: UseLoaderDataRoute<TId> = (opts) => {\n return useLoaderData({ ...opts, from: this.id, strict: false } as any)\n }\n\n useNavigate = (): UseNavigateResult<\n RouteTypesById<TRouter, TId>['fullPath']\n > => {\n const router = useRouter()\n return useNavigate({ from: router.routesById[this.id as string].fullPath })\n }\n\n notFound = (opts?: NotFoundError) => {\n return notFound({ routeId: this.id as string, ...opts })\n }\n\n Link: LinkComponentRoute<RouteTypesById<TRouter, TId>['fullPath']> = ((\n props,\n ) => {\n const router = useRouter()\n const fullPath = router.routesById[this.id as string].fullPath\n return <Link from={fullPath as never} {...props} />\n }) as LinkComponentRoute<RouteTypesById<TRouter, TId>['fullPath']>\n}\n\nexport class Route<\n in out TParentRoute extends RouteConstraints['TParentRoute'] = AnyRoute,\n in out TPath extends RouteConstraints['TPath'] = '/',\n in out TFullPath extends RouteConstraints['TFullPath'] = ResolveFullPath<\n TParentRoute,\n TPath\n >,\n in out TCustomId extends RouteConstraints['TCustomId'] = string,\n in out TId extends RouteConstraints['TId'] = ResolveId<\n TParentRoute,\n TCustomId,\n TPath\n >,\n in out TSearchValidator = undefined,\n in out TParams = ResolveParams<TPath>,\n in out TRouterContext = AnyContext,\n in out TRouteContextFn = AnyContext,\n in out TBeforeLoadFn = AnyContext,\n in out TLoaderDeps extends Record<string, any> = {},\n in out TLoaderFn = undefined,\n in out TChildren = unknown,\n in out TFileRouteTypes = unknown,\n >\n extends BaseRoute<\n TParentRoute,\n TPath,\n TFullPath,\n TCustomId,\n TId,\n TSearchValidator,\n TParams,\n TRouterContext,\n TRouteContextFn,\n TBeforeLoadFn,\n TLoaderDeps,\n TLoaderFn,\n TChildren,\n TFileRouteTypes\n >\n implements\n RouteCore<\n TParentRoute,\n TPath,\n TFullPath,\n TCustomId,\n TId,\n TSearchValidator,\n TParams,\n TRouterContext,\n TRouteContextFn,\n TBeforeLoadFn,\n TLoaderDeps,\n TLoaderFn,\n TChildren,\n TFileRouteTypes\n >\n{\n /**\n * @deprecated Use the `createRoute` function instead.\n */\n constructor(\n options?: RouteOptions<\n TParentRoute,\n TId,\n TCustomId,\n TFullPath,\n TPath,\n TSearchValidator,\n TParams,\n TLoaderDeps,\n TLoaderFn,\n TRouterContext,\n TRouteContextFn,\n TBeforeLoadFn\n >,\n ) {\n super(options)\n }\n\n useMatch: UseMatchRoute<TId> = (opts) => {\n return useMatch({\n select: opts?.select,\n from: this.id,\n } as any) as any\n }\n\n useRouteContext: UseRouteContextRoute<TId> = (opts?) => {\n return useMatch({\n ...opts,\n from: this.id,\n select: (d) => (opts?.select ? opts.select(d.context) : d.context),\n }) as any\n }\n\n useSearch: UseSearchRoute<TId> = (opts) => {\n return useSearch({\n select: opts?.select,\n from: this.id,\n } as any) as any\n }\n\n useParams: UseParamsRoute<TId> = (opts) => {\n return useParams({\n select: opts?.select,\n from: this.id,\n } as any) as any\n }\n\n useLoaderDeps: UseLoaderDepsRoute<TId> = (opts) => {\n return useLoaderDeps({ ...opts, from: this.id } as any)\n }\n\n useLoaderData: UseLoaderDataRoute<TId> = (opts) => {\n return useLoaderData({ ...opts, from: this.id } as any)\n }\n\n useNavigate = (): UseNavigateResult<TFullPath> => {\n return useNavigate({ from: this.fullPath })\n }\n\n Link: LinkComponentRoute<TFullPath> = ((props) => {\n return <Link from={this.fullPath} {...props} />\n }) as LinkComponentRoute<TFullPath>\n}\n\nexport function createRoute<\n TParentRoute extends RouteConstraints['TParentRoute'] = AnyRoute,\n TPath extends RouteConstraints['TPath'] = '/',\n TFullPath extends RouteConstraints['TFullPath'] = ResolveFullPath<\n TParentRoute,\n TPath\n >,\n TCustomId extends RouteConstraints['TCustomId'] = string,\n TId extends RouteConstraints['TId'] = ResolveId<\n TParentRoute,\n TCustomId,\n TPath\n >,\n TSearchValidator = undefined,\n TParams = ResolveParams<TPath>,\n TRouteContextFn = AnyContext,\n TBeforeLoadFn = AnyContext,\n TLoaderDeps extends Record<string, any> = {},\n TLoaderFn = undefined,\n TChildren = unknown,\n>(\n options: RouteOptions<\n TParentRoute,\n TId,\n TCustomId,\n TFullPath,\n TPath,\n TSearchValidator,\n TParams,\n TLoaderDeps,\n TLoaderFn,\n AnyContext,\n TRouteContextFn,\n TBeforeLoadFn\n >,\n): Route<\n TParentRoute,\n TPath,\n TFullPath,\n TCustomId,\n TId,\n TSearchValidator,\n TParams,\n AnyContext,\n TRouteContextFn,\n TBeforeLoadFn,\n TLoaderDeps,\n TLoaderFn,\n TChildren,\n unknown\n> {\n return new Route<\n TParentRoute,\n TPath,\n TFullPath,\n TCustomId,\n TId,\n TSearchValidator,\n TParams,\n AnyContext,\n TRouteContextFn,\n TBeforeLoadFn,\n TLoaderDeps,\n TLoaderFn,\n TChildren,\n unknown\n >(options)\n}\n\nexport type AnyRootRoute = RootRoute<any, any, any, any, any, any, any, any>\n\nexport function createRootRouteWithContext<TRouterContext extends {}>() {\n return <\n TRouteContextFn = AnyContext,\n TBeforeLoadFn = AnyContext,\n TSearchValidator = undefined,\n TLoaderDeps extends Record<string, any> = {},\n TLoaderFn = undefined,\n >(\n options?: RootRouteOptions<\n TSearchValidator,\n TRouterContext,\n TRouteContextFn,\n TBeforeLoadFn,\n TLoaderDeps,\n TLoaderFn\n >,\n ) => {\n return createRootRoute<\n TSearchValidator,\n TRouterContext,\n TRouteContextFn,\n TBeforeLoadFn,\n TLoaderDeps,\n TLoaderFn\n >(options as any)\n }\n}\n\n/**\n * @deprecated Use the `createRootRouteWithContext` function instead.\n */\nexport const rootRouteWithContext = createRootRouteWithContext\n\nexport class RootRoute<\n in out TSearchValidator = undefined,\n in out TRouterContext = {},\n in out TRouteContextFn = AnyContext,\n in out TBeforeLoadFn = AnyContext,\n in out TLoaderDeps extends Record<string, any> = {},\n in out TLoaderFn = undefined,\n in out TChildren = unknown,\n in out TFileRouteTypes = unknown,\n >\n extends BaseRootRoute<\n TSearchValidator,\n TRouterContext,\n TRouteContextFn,\n TBeforeLoadFn,\n TLoaderDeps,\n TLoaderFn,\n TChildren,\n TFileRouteTypes\n >\n implements\n RootRouteCore<\n TSearchValidator,\n TRouterContext,\n TRouteContextFn,\n TBeforeLoadFn,\n TLoaderDeps,\n TLoaderFn,\n TChildren,\n TFileRouteTypes\n >\n{\n /**\n * @deprecated `RootRoute` is now an internal implementation detail. Use `createRootRoute()` instead.\n */\n constructor(\n options?: RootRouteOptions<\n TSearchValidator,\n TRouterContext,\n TRouteContextFn,\n TBeforeLoadFn,\n TLoaderDeps,\n TLoaderFn\n >,\n ) {\n super(options)\n }\n\n useMatch: UseMatchRoute<RootRouteId> = (opts) => {\n return useMatch({\n select: opts?.select,\n from: this.id,\n } as any) as any\n }\n\n useRouteContext: UseRouteContextRoute<RootRouteId> = (opts) => {\n return useMatch({\n ...opts,\n from: this.id,\n select: (d) => (opts?.select ? opts.select(d.context) : d.context),\n }) as any\n }\n\n useSearch: UseSearchRoute<RootRouteId> = (opts) => {\n return useSearch({\n select: opts?.select,\n from: this.id,\n } as any) as any\n }\n\n useParams: UseParamsRoute<RootRouteId> = (opts) => {\n return useParams({\n select: opts?.select,\n from: this.id,\n } as any) as any\n }\n\n useLoaderDeps: UseLoaderDepsRoute<RootRouteId> = (opts) => {\n return useLoaderDeps({ ...opts, from: this.id } as any)\n }\n\n useLoaderData: UseLoaderDataRoute<RootRouteId> = (opts) => {\n return useLoaderData({ ...opts, from: this.id } as any)\n }\n\n useNavigate = (): UseNavigateResult<'/'> => {\n return useNavigate({ from: this.fullPath })\n }\n\n Link: LinkComponentRoute<'/'> = ((props) => {\n return <Link from={this.fullPath} {...(props as any)} />\n }) as LinkComponentRoute<'/'>\n}\n\nexport function createRouteMask<\n TRouteTree extends AnyRoute,\n TFrom extends string,\n TTo extends string,\n>(\n opts: {\n routeTree: TRouteTree\n } & ToMaskOptions<RouterCore<TRouteTree, 'never', false>, TFrom, TTo>,\n): RouteMask<TRouteTree> {\n return opts as any\n}\n\nexport type SolidNode = Solid.JSX.Element\n\nexport interface DefaultRouteTypes<TProps> {\n component: (props: TProps) => any\n}\nexport interface RouteTypes<TProps> extends DefaultRouteTypes<TProps> {}\n\nexport type AsyncRouteComponent<TProps> = RouteTypes<TProps>['component'] & {\n preload?: () => Promise<void>\n}\n\nexport type RouteComponent = AsyncRouteComponent<{}>\n\nexport type ErrorRouteComponent = AsyncRouteComponent<ErrorComponentProps>\n\nexport type NotFoundRouteComponent = RouteTypes<NotFoundRouteProps>['component']\n\nexport class NotFoundRoute<\n TParentRoute extends AnyRootRoute,\n TRouterContext = AnyContext,\n TRouteContextFn = AnyContext,\n TBeforeLoadFn = AnyContext,\n TSearchValidator = undefined,\n TLoaderDeps extends Record<string, any> = {},\n TLoaderFn = undefined,\n TChildren = unknown,\n> extends Route<\n TParentRoute,\n '/404',\n '/404',\n '404',\n '404',\n TSearchValidator,\n {},\n TRouterContext,\n TRouteContextFn,\n TBeforeLoadFn,\n TLoaderDeps,\n TLoaderFn,\n TChildren\n> {\n constructor(\n options: Omit<\n RouteOptions<\n TParentRoute,\n string,\n string,\n string,\n string,\n TSearchValidator,\n {},\n TLoaderDeps,\n TLoaderFn,\n TRouterContext,\n TRouteContextFn,\n TBeforeLoadFn\n >,\n | 'caseSensitive'\n | 'parseParams'\n | 'stringifyParams'\n | 'path'\n | 'id'\n | 'params'\n >,\n ) {\n super({\n ...(options as any),\n id: '404',\n })\n }\n}\n\nexport function createRootRoute<\n TSearchValidator = undefined,\n TRouterContext = {},\n TRouteContextFn = AnyContext,\n TBeforeLoadFn = AnyContext,\n TLoaderDeps extends Record<string, any> = {},\n TLoaderFn = undefined,\n>(\n options?: RootRouteOptions<\n TSearchValidator,\n TRouterContext,\n TRouteContextFn,\n TBeforeLoadFn,\n TLoaderDeps,\n TLoaderFn\n >,\n): RootRoute<\n TSearchValidator,\n TRouterContext,\n TRouteContextFn,\n TBeforeLoadFn,\n TLoaderDeps,\n TLoaderFn,\n unknown,\n unknown\n> {\n return new RootRoute<\n TSearchValidator,\n TRouterContext,\n TRouteContextFn,\n TBeforeLoadFn,\n TLoaderDeps,\n TLoaderFn\n >(options)\n}\n"],"names":["getRouteApi","id","RouteApi","BaseRouteApi","constructor","useMatch","opts","select","from","useRouteContext","d","context","useSearch","useParams","useLoaderDeps","strict","useLoaderData","useNavigate","router","useRouter","routesById","fullPath","notFound","routeId","Link","props","_$createComponent","_$mergeProps","Route","BaseRoute","options","_self$","createRoute","createRootRouteWithContext","createRootRoute","rootRouteWithContext","RootRoute","BaseRootRoute","_self$2","createRouteMask","NotFoundRoute"],"mappings":"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"}
1
+ {"version":3,"file":"route.cjs","sources":["../../src/route.tsx"],"sourcesContent":["import {\n BaseRootRoute,\n BaseRoute,\n BaseRouteApi,\n notFound,\n} from '@tanstack/router-core'\nimport { Link } from './link'\nimport { useLoaderData } from './useLoaderData'\nimport { useLoaderDeps } from './useLoaderDeps'\nimport { useParams } from './useParams'\nimport { useSearch } from './useSearch'\nimport { useNavigate } from './useNavigate'\nimport { useMatch } from './useMatch'\nimport { useRouter } from './useRouter'\nimport type {\n AnyContext,\n AnyRoute,\n AnyRouter,\n ConstrainLiteral,\n ErrorComponentProps,\n NotFoundError,\n NotFoundRouteProps,\n RegisteredRouter,\n ResolveFullPath,\n ResolveId,\n ResolveParams,\n RootRoute as RootRouteCore,\n RootRouteId,\n RootRouteOptions,\n RouteConstraints,\n Route as RouteCore,\n RouteIds,\n RouteMask,\n RouteOptions,\n RouteTypesById,\n RouterCore,\n ToMaskOptions,\n UseNavigateResult,\n} from '@tanstack/router-core'\nimport type { UseLoaderDataRoute } from './useLoaderData'\nimport type { UseMatchRoute } from './useMatch'\nimport type { UseLoaderDepsRoute } from './useLoaderDeps'\nimport type { UseParamsRoute } from './useParams'\nimport type { UseSearchRoute } from './useSearch'\nimport type * as Solid from 'solid-js'\nimport type { UseRouteContextRoute } from './useRouteContext'\nimport type { LinkComponentRoute } from './link'\n\ndeclare module '@tanstack/router-core' {\n export interface UpdatableRouteOptionsExtensions {\n component?: RouteComponent\n errorComponent?: false | null | undefined | ErrorRouteComponent\n notFoundComponent?: NotFoundRouteComponent\n pendingComponent?: RouteComponent\n }\n\n export interface RootRouteOptionsExtensions {\n shellComponent?: ({\n children,\n }: {\n children: Solid.JSX.Element\n }) => Solid.JSX.Element\n }\n\n export interface RouteExtensions<\n in out TId extends string,\n in out TFullPath extends string,\n > {\n useMatch: UseMatchRoute<TId>\n useRouteContext: UseRouteContextRoute<TId>\n useSearch: UseSearchRoute<TId>\n useParams: UseParamsRoute<TId>\n useLoaderDeps: UseLoaderDepsRoute<TId>\n useLoaderData: UseLoaderDataRoute<TId>\n useNavigate: () => UseNavigateResult<TFullPath>\n Link: LinkComponentRoute<TFullPath>\n }\n}\n\nexport function getRouteApi<\n const TId,\n TRouter extends AnyRouter = RegisteredRouter,\n>(id: ConstrainLiteral<TId, RouteIds<TRouter['routeTree']>>) {\n return new RouteApi<TId, TRouter>({ id })\n}\n\nexport class RouteApi<\n TId,\n TRouter extends AnyRouter = RegisteredRouter,\n> extends BaseRouteApi<TId, TRouter> {\n /**\n * @deprecated Use the `getRouteApi` function instead.\n */\n constructor({ id }: { id: TId }) {\n super({ id })\n }\n\n useMatch: UseMatchRoute<TId> = (opts) => {\n return useMatch({\n select: opts?.select,\n from: this.id,\n } as any) as any\n }\n\n useRouteContext: UseRouteContextRoute<TId> = (opts) => {\n return useMatch({\n from: this.id as any,\n select: (d) => (opts?.select ? opts.select(d.context) : d.context),\n }) as any\n }\n\n useSearch: UseSearchRoute<TId> = (opts) => {\n return useSearch({\n select: opts?.select,\n from: this.id,\n } as any) as any\n }\n\n useParams: UseParamsRoute<TId> = (opts) => {\n return useParams({\n select: opts?.select,\n from: this.id,\n } as any) as any\n }\n\n useLoaderDeps: UseLoaderDepsRoute<TId> = (opts) => {\n return useLoaderDeps({ ...opts, from: this.id, strict: false } as any)\n }\n\n useLoaderData: UseLoaderDataRoute<TId> = (opts) => {\n return useLoaderData({ ...opts, from: this.id, strict: false } as any)\n }\n\n useNavigate = (): UseNavigateResult<\n RouteTypesById<TRouter, TId>['fullPath']\n > => {\n const router = useRouter()\n return useNavigate({ from: router.routesById[this.id as string].fullPath })\n }\n\n notFound = (opts?: NotFoundError) => {\n return notFound({ routeId: this.id as string, ...opts })\n }\n\n Link: LinkComponentRoute<RouteTypesById<TRouter, TId>['fullPath']> = ((\n props,\n ) => {\n const router = useRouter()\n const fullPath = router.routesById[this.id as string].fullPath\n return <Link from={fullPath as never} {...props} />\n }) as LinkComponentRoute<RouteTypesById<TRouter, TId>['fullPath']>\n}\n\nexport class Route<\n in out TParentRoute extends RouteConstraints['TParentRoute'] = AnyRoute,\n in out TPath extends RouteConstraints['TPath'] = '/',\n in out TFullPath extends RouteConstraints['TFullPath'] = ResolveFullPath<\n TParentRoute,\n TPath\n >,\n in out TCustomId extends RouteConstraints['TCustomId'] = string,\n in out TId extends RouteConstraints['TId'] = ResolveId<\n TParentRoute,\n TCustomId,\n TPath\n >,\n in out TSearchValidator = undefined,\n in out TParams = ResolveParams<TPath>,\n in out TRouterContext = AnyContext,\n in out TRouteContextFn = AnyContext,\n in out TBeforeLoadFn = AnyContext,\n in out TLoaderDeps extends Record<string, any> = {},\n in out TLoaderFn = undefined,\n in out TChildren = unknown,\n in out TFileRouteTypes = unknown,\n >\n extends BaseRoute<\n TParentRoute,\n TPath,\n TFullPath,\n TCustomId,\n TId,\n TSearchValidator,\n TParams,\n TRouterContext,\n TRouteContextFn,\n TBeforeLoadFn,\n TLoaderDeps,\n TLoaderFn,\n TChildren,\n TFileRouteTypes\n >\n implements\n RouteCore<\n TParentRoute,\n TPath,\n TFullPath,\n TCustomId,\n TId,\n TSearchValidator,\n TParams,\n TRouterContext,\n TRouteContextFn,\n TBeforeLoadFn,\n TLoaderDeps,\n TLoaderFn,\n TChildren,\n TFileRouteTypes\n >\n{\n /**\n * @deprecated Use the `createRoute` function instead.\n */\n constructor(\n options?: RouteOptions<\n TParentRoute,\n TId,\n TCustomId,\n TFullPath,\n TPath,\n TSearchValidator,\n TParams,\n TLoaderDeps,\n TLoaderFn,\n TRouterContext,\n TRouteContextFn,\n TBeforeLoadFn\n >,\n ) {\n super(options)\n }\n\n useMatch: UseMatchRoute<TId> = (opts) => {\n return useMatch({\n select: opts?.select,\n from: this.id,\n } as any) as any\n }\n\n useRouteContext: UseRouteContextRoute<TId> = (opts?) => {\n return useMatch({\n ...opts,\n from: this.id,\n select: (d) => (opts?.select ? opts.select(d.context) : d.context),\n }) as any\n }\n\n useSearch: UseSearchRoute<TId> = (opts) => {\n return useSearch({\n select: opts?.select,\n from: this.id,\n } as any) as any\n }\n\n useParams: UseParamsRoute<TId> = (opts) => {\n return useParams({\n select: opts?.select,\n from: this.id,\n } as any) as any\n }\n\n useLoaderDeps: UseLoaderDepsRoute<TId> = (opts) => {\n return useLoaderDeps({ ...opts, from: this.id } as any)\n }\n\n useLoaderData: UseLoaderDataRoute<TId> = (opts) => {\n return useLoaderData({ ...opts, from: this.id } as any)\n }\n\n useNavigate = (): UseNavigateResult<TFullPath> => {\n return useNavigate({ from: this.fullPath })\n }\n\n Link: LinkComponentRoute<TFullPath> = ((props) => {\n return <Link from={this.fullPath} {...props} />\n }) as LinkComponentRoute<TFullPath>\n}\n\nexport function createRoute<\n TParentRoute extends RouteConstraints['TParentRoute'] = AnyRoute,\n TPath extends RouteConstraints['TPath'] = '/',\n TFullPath extends RouteConstraints['TFullPath'] = ResolveFullPath<\n TParentRoute,\n TPath\n >,\n TCustomId extends RouteConstraints['TCustomId'] = string,\n TId extends RouteConstraints['TId'] = ResolveId<\n TParentRoute,\n TCustomId,\n TPath\n >,\n TSearchValidator = undefined,\n TParams = ResolveParams<TPath>,\n TRouteContextFn = AnyContext,\n TBeforeLoadFn = AnyContext,\n TLoaderDeps extends Record<string, any> = {},\n TLoaderFn = undefined,\n TChildren = unknown,\n>(\n options: RouteOptions<\n TParentRoute,\n TId,\n TCustomId,\n TFullPath,\n TPath,\n TSearchValidator,\n TParams,\n TLoaderDeps,\n TLoaderFn,\n AnyContext,\n TRouteContextFn,\n TBeforeLoadFn\n >,\n): Route<\n TParentRoute,\n TPath,\n TFullPath,\n TCustomId,\n TId,\n TSearchValidator,\n TParams,\n AnyContext,\n TRouteContextFn,\n TBeforeLoadFn,\n TLoaderDeps,\n TLoaderFn,\n TChildren,\n unknown\n> {\n return new Route<\n TParentRoute,\n TPath,\n TFullPath,\n TCustomId,\n TId,\n TSearchValidator,\n TParams,\n AnyContext,\n TRouteContextFn,\n TBeforeLoadFn,\n TLoaderDeps,\n TLoaderFn,\n TChildren,\n unknown\n >(options)\n}\n\nexport type AnyRootRoute = RootRoute<any, any, any, any, any, any, any, any>\n\nexport function createRootRouteWithContext<TRouterContext extends {}>() {\n return <\n TRouteContextFn = AnyContext,\n TBeforeLoadFn = AnyContext,\n TSearchValidator = undefined,\n TLoaderDeps extends Record<string, any> = {},\n TLoaderFn = undefined,\n >(\n options?: RootRouteOptions<\n TSearchValidator,\n TRouterContext,\n TRouteContextFn,\n TBeforeLoadFn,\n TLoaderDeps,\n TLoaderFn\n >,\n ) => {\n return createRootRoute<\n TSearchValidator,\n TRouterContext,\n TRouteContextFn,\n TBeforeLoadFn,\n TLoaderDeps,\n TLoaderFn\n >(options as any)\n }\n}\n\n/**\n * @deprecated Use the `createRootRouteWithContext` function instead.\n */\nexport const rootRouteWithContext = createRootRouteWithContext\n\nexport class RootRoute<\n in out TSearchValidator = undefined,\n in out TRouterContext = {},\n in out TRouteContextFn = AnyContext,\n in out TBeforeLoadFn = AnyContext,\n in out TLoaderDeps extends Record<string, any> = {},\n in out TLoaderFn = undefined,\n in out TChildren = unknown,\n in out TFileRouteTypes = unknown,\n >\n extends BaseRootRoute<\n TSearchValidator,\n TRouterContext,\n TRouteContextFn,\n TBeforeLoadFn,\n TLoaderDeps,\n TLoaderFn,\n TChildren,\n TFileRouteTypes\n >\n implements\n RootRouteCore<\n TSearchValidator,\n TRouterContext,\n TRouteContextFn,\n TBeforeLoadFn,\n TLoaderDeps,\n TLoaderFn,\n TChildren,\n TFileRouteTypes\n >\n{\n /**\n * @deprecated `RootRoute` is now an internal implementation detail. Use `createRootRoute()` instead.\n */\n constructor(\n options?: RootRouteOptions<\n TSearchValidator,\n TRouterContext,\n TRouteContextFn,\n TBeforeLoadFn,\n TLoaderDeps,\n TLoaderFn\n >,\n ) {\n super(options)\n }\n\n useMatch: UseMatchRoute<RootRouteId> = (opts) => {\n return useMatch({\n select: opts?.select,\n from: this.id,\n } as any) as any\n }\n\n useRouteContext: UseRouteContextRoute<RootRouteId> = (opts) => {\n return useMatch({\n ...opts,\n from: this.id,\n select: (d) => (opts?.select ? opts.select(d.context) : d.context),\n }) as any\n }\n\n useSearch: UseSearchRoute<RootRouteId> = (opts) => {\n return useSearch({\n select: opts?.select,\n from: this.id,\n } as any) as any\n }\n\n useParams: UseParamsRoute<RootRouteId> = (opts) => {\n return useParams({\n select: opts?.select,\n from: this.id,\n } as any) as any\n }\n\n useLoaderDeps: UseLoaderDepsRoute<RootRouteId> = (opts) => {\n return useLoaderDeps({ ...opts, from: this.id } as any)\n }\n\n useLoaderData: UseLoaderDataRoute<RootRouteId> = (opts) => {\n return useLoaderData({ ...opts, from: this.id } as any)\n }\n\n useNavigate = (): UseNavigateResult<'/'> => {\n return useNavigate({ from: this.fullPath })\n }\n\n Link: LinkComponentRoute<'/'> = ((props) => {\n return <Link from={this.fullPath} {...(props as any)} />\n }) as LinkComponentRoute<'/'>\n}\n\nexport function createRouteMask<\n TRouteTree extends AnyRoute,\n TFrom extends string,\n TTo extends string,\n>(\n opts: {\n routeTree: TRouteTree\n } & ToMaskOptions<RouterCore<TRouteTree, 'never', false>, TFrom, TTo>,\n): RouteMask<TRouteTree> {\n return opts as any\n}\n\nexport type SolidNode = Solid.JSX.Element\n\nexport interface DefaultRouteTypes<TProps> {\n component: (props: TProps) => any\n}\nexport interface RouteTypes<TProps> extends DefaultRouteTypes<TProps> {}\n\nexport type AsyncRouteComponent<TProps> = RouteTypes<TProps>['component'] & {\n preload?: () => Promise<void>\n}\n\nexport type RouteComponent = AsyncRouteComponent<{}>\n\nexport type ErrorRouteComponent = AsyncRouteComponent<ErrorComponentProps>\n\nexport type NotFoundRouteComponent = RouteTypes<NotFoundRouteProps>['component']\n\nexport class NotFoundRoute<\n TParentRoute extends AnyRootRoute,\n TRouterContext = AnyContext,\n TRouteContextFn = AnyContext,\n TBeforeLoadFn = AnyContext,\n TSearchValidator = undefined,\n TLoaderDeps extends Record<string, any> = {},\n TLoaderFn = undefined,\n TChildren = unknown,\n> extends Route<\n TParentRoute,\n '/404',\n '/404',\n '404',\n '404',\n TSearchValidator,\n {},\n TRouterContext,\n TRouteContextFn,\n TBeforeLoadFn,\n TLoaderDeps,\n TLoaderFn,\n TChildren\n> {\n constructor(\n options: Omit<\n RouteOptions<\n TParentRoute,\n string,\n string,\n string,\n string,\n TSearchValidator,\n {},\n TLoaderDeps,\n TLoaderFn,\n TRouterContext,\n TRouteContextFn,\n TBeforeLoadFn\n >,\n | 'caseSensitive'\n | 'parseParams'\n | 'stringifyParams'\n | 'path'\n | 'id'\n | 'params'\n >,\n ) {\n super({\n ...(options as any),\n id: '404',\n })\n }\n}\n\nexport function createRootRoute<\n TSearchValidator = undefined,\n TRouterContext = {},\n TRouteContextFn = AnyContext,\n TBeforeLoadFn = AnyContext,\n TLoaderDeps extends Record<string, any> = {},\n TLoaderFn = undefined,\n>(\n options?: RootRouteOptions<\n TSearchValidator,\n TRouterContext,\n TRouteContextFn,\n TBeforeLoadFn,\n TLoaderDeps,\n TLoaderFn\n >,\n): RootRoute<\n TSearchValidator,\n TRouterContext,\n TRouteContextFn,\n TBeforeLoadFn,\n TLoaderDeps,\n TLoaderFn,\n unknown,\n unknown\n> {\n return new RootRoute<\n TSearchValidator,\n TRouterContext,\n TRouteContextFn,\n TBeforeLoadFn,\n TLoaderDeps,\n TLoaderFn\n >(options)\n}\n"],"names":["getRouteApi","id","RouteApi","BaseRouteApi","constructor","useMatch","opts","select","from","useRouteContext","d","context","useSearch","useParams","useLoaderDeps","strict","useLoaderData","useNavigate","router","useRouter","routesById","fullPath","notFound","routeId","Link","props","_$createComponent","_$mergeProps","Route","BaseRoute","options","_self$","createRoute","createRootRouteWithContext","createRootRoute","rootRouteWithContext","RootRoute","BaseRootRoute","_self$2","createRouteMask","NotFoundRoute"],"mappings":"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"}
@@ -10,7 +10,7 @@ import type * as Solid from 'solid-js';
10
10
  declare module '@tanstack/router-core' {
11
11
  interface UpdatableRouteOptionsExtensions {
12
12
  component?: RouteComponent;
13
- errorComponent?: false | null | ErrorRouteComponent;
13
+ errorComponent?: false | null | undefined | ErrorRouteComponent;
14
14
  notFoundComponent?: NotFoundRouteComponent;
15
15
  pendingComponent?: RouteComponent;
16
16
  }
package/dist/esm/Match.js CHANGED
@@ -2,7 +2,7 @@ import { createComponent, memo, Dynamic, mergeProps } from "solid-js/web";
2
2
  import * as Solid from "solid-js";
3
3
  import invariant from "tiny-invariant";
4
4
  import warning from "tiny-warning";
5
- import { isNotFound, rootRouteId, pick, createControlledPromise, isRedirect, getLocationChangeInfo } from "@tanstack/router-core";
5
+ import { isNotFound, rootRouteId, createControlledPromise, isRedirect, getLocationChangeInfo } from "@tanstack/router-core";
6
6
  import { ErrorComponent, CatchBoundary } from "./CatchBoundary.js";
7
7
  import { useRouterState } from "./useRouterState.js";
8
8
  import { useRouter } from "./useRouter.js";
@@ -17,7 +17,11 @@ const Match = (props) => {
17
17
  select: (s) => {
18
18
  const match = s.matches.find((d) => d.id === props.matchId);
19
19
  invariant(match, `Could not find match for matchId "${props.matchId}". Please file an issue!`);
20
- return pick(match, ["routeId", "ssr", "_displayPending"]);
20
+ return {
21
+ routeId: match.routeId,
22
+ ssr: match.ssr,
23
+ _displayPending: match._displayPending
24
+ };
21
25
  }
22
26
  });
23
27
  const route = () => router.routesById[matchState().routeId];
@@ -156,8 +160,7 @@ const MatchInner = (props) => {
156
160
  const router = useRouter();
157
161
  const matchState = useRouterState({
158
162
  select: (s) => {
159
- const matchIndex = s.matches.findIndex((d) => d.id === props.matchId);
160
- const match2 = s.matches[matchIndex];
163
+ const match2 = s.matches.find((d) => d.id === props.matchId);
161
164
  const routeId = match2.routeId;
162
165
  const remountFn = router.routesById[routeId].options.remountDeps ?? router.options.defaultRemountDeps;
163
166
  const remountDeps = remountFn?.({
@@ -170,7 +173,13 @@ const MatchInner = (props) => {
170
173
  return {
171
174
  key,
172
175
  routeId,
173
- match: pick(match2, ["id", "status", "error", "_forcePending", "_displayPending"])
176
+ match: {
177
+ id: match2.id,
178
+ status: match2.status,
179
+ error: match2.error,
180
+ _forcePending: match2._forcePending,
181
+ _displayPending: match2._displayPending
182
+ }
174
183
  };
175
184
  }
176
185
  });
@@ -179,10 +188,9 @@ const MatchInner = (props) => {
179
188
  const out = () => {
180
189
  const Comp = route().options.component ?? router.options.defaultComponent;
181
190
  if (Comp) {
191
+ const key = matchState().key ?? matchState().match.id;
182
192
  return createComponent(Solid.Show, {
183
- get when() {
184
- return matchState().match.id;
185
- },
193
+ when: key,
186
194
  keyed: true,
187
195
  get children() {
188
196
  return createComponent(Comp, {});
@@ -198,7 +206,7 @@ const MatchInner = (props) => {
198
206
  return match()._displayPending;
199
207
  },
200
208
  children: (_) => {
201
- const [displayPendingResult] = Solid.createResource(() => router.getMatch(match().id)?.displayPendingPromise);
209
+ const [displayPendingResult] = Solid.createResource(() => router.getMatch(match().id)?._nonReactive.displayPendingPromise);
202
210
  return memo(displayPendingResult);
203
211
  }
204
212
  }), createComponent(Solid.Match, {
@@ -206,7 +214,7 @@ const MatchInner = (props) => {
206
214
  return match()._forcePending;
207
215
  },
208
216
  children: (_) => {
209
- const [minPendingResult] = Solid.createResource(() => router.getMatch(match().id)?.minPendingPromise);
217
+ const [minPendingResult] = Solid.createResource(() => router.getMatch(match().id)?._nonReactive.minPendingPromise);
210
218
  return memo(minPendingResult);
211
219
  }
212
220
  }), createComponent(Solid.Match, {
@@ -215,27 +223,22 @@ const MatchInner = (props) => {
215
223
  },
216
224
  children: (_) => {
217
225
  const pendingMinMs = route().options.pendingMinMs ?? router.options.defaultPendingMinMs;
218
- if (pendingMinMs && !router.getMatch(match().id)?.minPendingPromise) {
219
- if (!router.isServer) {
220
- const minPendingPromise = createControlledPromise();
221
- Promise.resolve().then(() => {
222
- router.updateMatch(match().id, (prev) => ({
223
- ...prev,
224
- minPendingPromise
225
- }));
226
- });
227
- setTimeout(() => {
228
- minPendingPromise.resolve();
229
- router.updateMatch(match().id, (prev) => ({
230
- ...prev,
231
- minPendingPromise: void 0
232
- }));
233
- }, pendingMinMs);
226
+ if (pendingMinMs) {
227
+ const routerMatch = router.getMatch(match().id);
228
+ if (routerMatch && !routerMatch._nonReactive.minPendingPromise) {
229
+ if (!router.isServer) {
230
+ const minPendingPromise = createControlledPromise();
231
+ routerMatch._nonReactive.minPendingPromise = minPendingPromise;
232
+ setTimeout(() => {
233
+ minPendingPromise.resolve();
234
+ routerMatch._nonReactive.minPendingPromise = void 0;
235
+ }, pendingMinMs);
236
+ }
234
237
  }
235
238
  }
236
239
  const [loaderResult] = Solid.createResource(async () => {
237
240
  await new Promise((r) => setTimeout(r, 0));
238
- return router.getMatch(match().id)?.loadPromise;
241
+ return router.getMatch(match().id)?._nonReactive.loadPromise;
239
242
  });
240
243
  return memo(loaderResult);
241
244
  }
@@ -255,7 +258,7 @@ const MatchInner = (props) => {
255
258
  invariant(isRedirect(match().error), "Expected a redirect error");
256
259
  const [loaderResult] = Solid.createResource(async () => {
257
260
  await new Promise((r) => setTimeout(r, 0));
258
- return router.getMatch(match().id)?.loadPromise;
261
+ return router.getMatch(match().id)?._nonReactive.loadPromise;
259
262
  });
260
263
  return memo(loaderResult);
261
264
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Match.js","sources":["../../src/Match.tsx"],"sourcesContent":["import * as Solid from 'solid-js'\nimport invariant from 'tiny-invariant'\nimport warning from 'tiny-warning'\nimport {\n createControlledPromise,\n getLocationChangeInfo,\n isNotFound,\n isRedirect,\n pick,\n rootRouteId,\n} from '@tanstack/router-core'\nimport { Dynamic } from 'solid-js/web'\nimport { CatchBoundary, ErrorComponent } from './CatchBoundary'\nimport { useRouterState } from './useRouterState'\nimport { useRouter } from './useRouter'\nimport { CatchNotFound } from './not-found'\nimport { matchContext } from './matchContext'\nimport { SafeFragment } from './SafeFragment'\nimport { renderRouteNotFound } from './renderRouteNotFound'\nimport { ScrollRestoration } from './scroll-restoration'\nimport type { AnyRoute, RootRouteOptions } from '@tanstack/router-core'\n\nexport const Match = (props: { matchId: string }) => {\n const router = useRouter()\n const matchState = useRouterState({\n select: (s) => {\n const match = s.matches.find((d) => d.id === props.matchId)\n\n invariant(\n match,\n `Could not find match for matchId \"${props.matchId}\". Please file an issue!`,\n )\n return pick(match, ['routeId', 'ssr', '_displayPending'])\n },\n })\n\n const route: () => AnyRoute = () => router.routesById[matchState().routeId]\n\n const PendingComponent = () =>\n route().options.pendingComponent ?? router.options.defaultPendingComponent\n\n const routeErrorComponent = () =>\n route().options.errorComponent ?? router.options.defaultErrorComponent\n\n const routeOnCatch = () =>\n route().options.onCatch ?? router.options.defaultOnCatch\n\n const routeNotFoundComponent = () =>\n route().isRoot\n ? // If it's the root route, use the globalNotFound option, with fallback to the notFoundRoute's component\n (route().options.notFoundComponent ??\n router.options.notFoundRoute?.options.component)\n : route().options.notFoundComponent\n\n const resolvedNoSsr =\n matchState().ssr === false || matchState().ssr === 'data-only'\n\n const ResolvedSuspenseBoundary = () =>\n // If we're on the root route, allow forcefully wrapping in suspense\n (!route().isRoot ||\n route().options.wrapInSuspense ||\n resolvedNoSsr ||\n matchState()._displayPending) &&\n (route().options.wrapInSuspense ??\n PendingComponent() ??\n ((route().options.errorComponent as any)?.preload || resolvedNoSsr))\n ? Solid.Suspense\n : SafeFragment\n\n const ResolvedCatchBoundary = () =>\n routeErrorComponent() ? CatchBoundary : SafeFragment\n\n const ResolvedNotFoundBoundary = () =>\n routeNotFoundComponent() ? CatchNotFound : SafeFragment\n\n const resetKey = useRouterState({\n select: (s) => s.loadedAt,\n })\n\n const parentRouteId = useRouterState({\n select: (s) => {\n const index = s.matches.findIndex((d) => d.id === props.matchId)\n return s.matches[index - 1]?.routeId as string\n },\n })\n\n const ShellComponent = route().isRoot\n ? ((route().options as RootRouteOptions).shellComponent ?? SafeFragment)\n : SafeFragment\n\n return (\n <ShellComponent>\n <matchContext.Provider value={() => props.matchId}>\n <Dynamic\n component={ResolvedSuspenseBoundary()}\n fallback={<Dynamic component={PendingComponent()} />}\n >\n <Dynamic\n component={ResolvedCatchBoundary()}\n getResetKey={() => resetKey()}\n errorComponent={routeErrorComponent() || ErrorComponent}\n onCatch={(error: Error) => {\n // Forward not found errors (we don't want to show the error component for these)\n if (isNotFound(error)) throw error\n warning(false, `Error in route match: ${props.matchId}`)\n routeOnCatch()?.(error)\n }}\n >\n <Dynamic\n component={ResolvedNotFoundBoundary()}\n fallback={(error: any) => {\n // If the current not found handler doesn't exist or it has a\n // route ID which doesn't match the current route, rethrow the error\n if (\n !routeNotFoundComponent() ||\n (error.routeId && error.routeId !== matchState().routeId) ||\n (!error.routeId && !route().isRoot)\n )\n throw error\n\n return (\n <Dynamic component={routeNotFoundComponent()} {...error} />\n )\n }}\n >\n <Solid.Switch>\n <Solid.Match when={resolvedNoSsr}>\n <Solid.Show\n when={!router.isServer}\n fallback={<Dynamic component={PendingComponent()} />}\n >\n <MatchInner matchId={props.matchId} />\n </Solid.Show>\n </Solid.Match>\n <Solid.Match when={!resolvedNoSsr}>\n <MatchInner matchId={props.matchId} />\n </Solid.Match>\n </Solid.Switch>\n </Dynamic>\n </Dynamic>\n </Dynamic>\n </matchContext.Provider>\n\n {parentRouteId() === rootRouteId ? (\n <>\n <OnRendered />\n <ScrollRestoration />\n </>\n ) : null}\n </ShellComponent>\n )\n}\n\n// On Rendered can't happen above the root layout because it actually\n// renders a dummy dom element to track the rendered state of the app.\n// We render a script tag with a key that changes based on the current\n// location state.__TSR_key. Also, because it's below the root layout, it\n// allows us to fire onRendered events even after a hydration mismatch\n// error that occurred above the root layout (like bad head/link tags,\n// which is common).\nfunction OnRendered() {\n const router = useRouter()\n\n const location = useRouterState({\n select: (s) => {\n return s.resolvedLocation?.state.__TSR_key\n },\n })\n Solid.createEffect(\n Solid.on([location], () => {\n router.emit({\n type: 'onRendered',\n ...getLocationChangeInfo(router.state),\n })\n }),\n )\n return null\n}\n\nexport const MatchInner = (props: { matchId: string }): any => {\n const router = useRouter()\n\n const matchState = useRouterState({\n select: (s) => {\n const matchIndex = s.matches.findIndex((d) => d.id === props.matchId)\n const match = s.matches[matchIndex]!\n const routeId = match.routeId as string\n\n const remountFn =\n (router.routesById[routeId] as AnyRoute).options.remountDeps ??\n router.options.defaultRemountDeps\n const remountDeps = remountFn?.({\n routeId,\n loaderDeps: match.loaderDeps,\n params: match._strictParams,\n search: match._strictSearch,\n })\n const key = remountDeps ? JSON.stringify(remountDeps) : undefined\n\n return {\n key,\n routeId,\n match: pick(match, [\n 'id',\n 'status',\n 'error',\n '_forcePending',\n '_displayPending',\n ]),\n }\n },\n })\n\n const route = () => router.routesById[matchState().routeId]!\n\n const match = () => matchState().match\n\n const out = () => {\n const Comp = route().options.component ?? router.options.defaultComponent\n if (Comp) {\n return (\n <Solid.Show when={matchState().match.id} keyed>\n <Comp />\n </Solid.Show>\n )\n }\n return <Outlet />\n }\n\n return (\n <Solid.Switch>\n <Solid.Match when={match()._displayPending}>\n {(_) => {\n const [displayPendingResult] = Solid.createResource(\n () => router.getMatch(match().id)?.displayPendingPromise,\n )\n\n return <>{displayPendingResult()}</>\n }}\n </Solid.Match>\n <Solid.Match when={match()._forcePending}>\n {(_) => {\n const [minPendingResult] = Solid.createResource(\n () => router.getMatch(match().id)?.minPendingPromise,\n )\n\n return <>{minPendingResult()}</>\n }}\n </Solid.Match>\n <Solid.Match when={match().status === 'pending'}>\n {(_) => {\n const pendingMinMs =\n route().options.pendingMinMs ?? router.options.defaultPendingMinMs\n\n if (pendingMinMs && !router.getMatch(match().id)?.minPendingPromise) {\n // Create a promise that will resolve after the minPendingMs\n if (!router.isServer) {\n const minPendingPromise = createControlledPromise<void>()\n\n Promise.resolve().then(() => {\n router.updateMatch(match().id, (prev) => ({\n ...prev,\n minPendingPromise,\n }))\n })\n\n setTimeout(() => {\n minPendingPromise.resolve()\n\n // We've handled the minPendingPromise, so we can delete it\n router.updateMatch(match().id, (prev) => ({\n ...prev,\n minPendingPromise: undefined,\n }))\n }, pendingMinMs)\n }\n }\n\n const [loaderResult] = Solid.createResource(async () => {\n await new Promise((r) => setTimeout(r, 0))\n return router.getMatch(match().id)?.loadPromise\n })\n\n return <>{loaderResult()}</>\n }}\n </Solid.Match>\n <Solid.Match when={match().status === 'notFound'}>\n {(_) => {\n invariant(isNotFound(match().error), 'Expected a notFound error')\n\n return renderRouteNotFound(router, route(), match().error)\n }}\n </Solid.Match>\n <Solid.Match when={match().status === 'redirected'}>\n {(_) => {\n invariant(isRedirect(match().error), 'Expected a redirect error')\n\n const [loaderResult] = Solid.createResource(async () => {\n await new Promise((r) => setTimeout(r, 0))\n return router.getMatch(match().id)?.loadPromise\n })\n\n return <>{loaderResult()}</>\n }}\n </Solid.Match>\n <Solid.Match when={match().status === 'error'}>\n {(_) => {\n if (router.isServer) {\n const RouteErrorComponent =\n (route().options.errorComponent ??\n router.options.defaultErrorComponent) ||\n ErrorComponent\n\n return (\n <RouteErrorComponent\n error={match().error}\n info={{\n componentStack: '',\n }}\n />\n )\n }\n\n throw match().error\n }}\n </Solid.Match>\n <Solid.Match when={match().status === 'success'}>{out()}</Solid.Match>\n </Solid.Switch>\n )\n}\n\nexport const Outlet = () => {\n const router = useRouter()\n const matchId = Solid.useContext(matchContext)\n const routeId = useRouterState({\n select: (s) => s.matches.find((d) => d.id === matchId())?.routeId as string,\n })\n\n const route = () => router.routesById[routeId()]!\n\n const parentGlobalNotFound = useRouterState({\n select: (s) => {\n const matches = s.matches\n const parentMatch = matches.find((d) => d.id === matchId())\n invariant(\n parentMatch,\n `Could not find parent match for matchId \"${matchId()}\"`,\n )\n return parentMatch.globalNotFound\n },\n })\n\n const childMatchId = useRouterState({\n select: (s) => {\n const matches = s.matches\n const index = matches.findIndex((d) => d.id === matchId())\n const v = matches[index + 1]?.id\n return v\n },\n })\n\n return (\n <Solid.Switch>\n <Solid.Match when={parentGlobalNotFound()}>\n {renderRouteNotFound(router, route(), undefined)}\n </Solid.Match>\n <Solid.Match when={childMatchId()}>\n {(matchId) => {\n // const nextMatch = <Match matchId={matchId()} />\n\n return (\n <Solid.Show\n when={matchId() === rootRouteId}\n fallback={<Match matchId={matchId()} />}\n >\n <Solid.Suspense\n fallback={\n <Dynamic component={router.options.defaultPendingComponent} />\n }\n >\n <Match matchId={matchId()} />\n </Solid.Suspense>\n </Solid.Show>\n )\n }}\n </Solid.Match>\n </Solid.Switch>\n )\n}\n"],"names":["Match","props","router","useRouter","matchState","useRouterState","select","s","match","matches","find","d","id","matchId","invariant","pick","route","routesById","routeId","PendingComponent","options","pendingComponent","defaultPendingComponent","routeErrorComponent","errorComponent","defaultErrorComponent","routeOnCatch","onCatch","defaultOnCatch","routeNotFoundComponent","isRoot","notFoundComponent","notFoundRoute","component","resolvedNoSsr","ssr","ResolvedSuspenseBoundary","wrapInSuspense","_displayPending","preload","Solid","Suspense","SafeFragment","ResolvedCatchBoundary","CatchBoundary","ResolvedNotFoundBoundary","CatchNotFound","resetKey","loadedAt","parentRouteId","index","findIndex","ShellComponent","shellComponent","_$createComponent","children","matchContext","Provider","value","Dynamic","fallback","getResetKey","ErrorComponent","error","isNotFound","warning","_$mergeProps","Switch","when","Show","isServer","MatchInner","_$memo","rootRouteId","OnRendered","ScrollRestoration","location","resolvedLocation","state","__TSR_key","createEffect","on","emit","type","getLocationChangeInfo","matchIndex","remountFn","remountDeps","defaultRemountDeps","loaderDeps","params","_strictParams","search","_strictSearch","key","JSON","stringify","undefined","out","Comp","defaultComponent","keyed","Outlet","_","displayPendingResult","createResource","getMatch","displayPendingPromise","_forcePending","minPendingResult","minPendingPromise","status","pendingMinMs","defaultPendingMinMs","createControlledPromise","Promise","resolve","then","updateMatch","prev","setTimeout","loaderResult","r","loadPromise","renderRouteNotFound","isRedirect","RouteErrorComponent","info","componentStack","useContext","parentGlobalNotFound","parentMatch","globalNotFound","childMatchId","v"],"mappings":"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"}
1
+ {"version":3,"file":"Match.js","sources":["../../src/Match.tsx"],"sourcesContent":["import * as Solid from 'solid-js'\nimport invariant from 'tiny-invariant'\nimport warning from 'tiny-warning'\nimport {\n createControlledPromise,\n getLocationChangeInfo,\n isNotFound,\n isRedirect,\n rootRouteId,\n} from '@tanstack/router-core'\nimport { Dynamic } from 'solid-js/web'\nimport { CatchBoundary, ErrorComponent } from './CatchBoundary'\nimport { useRouterState } from './useRouterState'\nimport { useRouter } from './useRouter'\nimport { CatchNotFound } from './not-found'\nimport { matchContext } from './matchContext'\nimport { SafeFragment } from './SafeFragment'\nimport { renderRouteNotFound } from './renderRouteNotFound'\nimport { ScrollRestoration } from './scroll-restoration'\nimport type { AnyRoute, RootRouteOptions } from '@tanstack/router-core'\n\nexport const Match = (props: { matchId: string }) => {\n const router = useRouter()\n const matchState = useRouterState({\n select: (s) => {\n const match = s.matches.find((d) => d.id === props.matchId)\n\n invariant(\n match,\n `Could not find match for matchId \"${props.matchId}\". Please file an issue!`,\n )\n return {\n routeId: match.routeId,\n ssr: match.ssr,\n _displayPending: match._displayPending,\n }\n },\n })\n\n const route: () => AnyRoute = () => router.routesById[matchState().routeId]\n\n const PendingComponent = () =>\n route().options.pendingComponent ?? router.options.defaultPendingComponent\n\n const routeErrorComponent = () =>\n route().options.errorComponent ?? router.options.defaultErrorComponent\n\n const routeOnCatch = () =>\n route().options.onCatch ?? router.options.defaultOnCatch\n\n const routeNotFoundComponent = () =>\n route().isRoot\n ? // If it's the root route, use the globalNotFound option, with fallback to the notFoundRoute's component\n (route().options.notFoundComponent ??\n router.options.notFoundRoute?.options.component)\n : route().options.notFoundComponent\n\n const resolvedNoSsr =\n matchState().ssr === false || matchState().ssr === 'data-only'\n\n const ResolvedSuspenseBoundary = () =>\n // If we're on the root route, allow forcefully wrapping in suspense\n (!route().isRoot ||\n route().options.wrapInSuspense ||\n resolvedNoSsr ||\n matchState()._displayPending) &&\n (route().options.wrapInSuspense ??\n PendingComponent() ??\n ((route().options.errorComponent as any)?.preload || resolvedNoSsr))\n ? Solid.Suspense\n : SafeFragment\n\n const ResolvedCatchBoundary = () =>\n routeErrorComponent() ? CatchBoundary : SafeFragment\n\n const ResolvedNotFoundBoundary = () =>\n routeNotFoundComponent() ? CatchNotFound : SafeFragment\n\n const resetKey = useRouterState({\n select: (s) => s.loadedAt,\n })\n\n const parentRouteId = useRouterState({\n select: (s) => {\n const index = s.matches.findIndex((d) => d.id === props.matchId)\n return s.matches[index - 1]?.routeId as string\n },\n })\n\n const ShellComponent = route().isRoot\n ? ((route().options as RootRouteOptions).shellComponent ?? SafeFragment)\n : SafeFragment\n\n return (\n <ShellComponent>\n <matchContext.Provider value={() => props.matchId}>\n <Dynamic\n component={ResolvedSuspenseBoundary()}\n fallback={<Dynamic component={PendingComponent()} />}\n >\n <Dynamic\n component={ResolvedCatchBoundary()}\n getResetKey={() => resetKey()}\n errorComponent={routeErrorComponent() || ErrorComponent}\n onCatch={(error: Error) => {\n // Forward not found errors (we don't want to show the error component for these)\n if (isNotFound(error)) throw error\n warning(false, `Error in route match: ${props.matchId}`)\n routeOnCatch()?.(error)\n }}\n >\n <Dynamic\n component={ResolvedNotFoundBoundary()}\n fallback={(error: any) => {\n // If the current not found handler doesn't exist or it has a\n // route ID which doesn't match the current route, rethrow the error\n if (\n !routeNotFoundComponent() ||\n (error.routeId && error.routeId !== matchState().routeId) ||\n (!error.routeId && !route().isRoot)\n )\n throw error\n\n return (\n <Dynamic component={routeNotFoundComponent()} {...error} />\n )\n }}\n >\n <Solid.Switch>\n <Solid.Match when={resolvedNoSsr}>\n <Solid.Show\n when={!router.isServer}\n fallback={<Dynamic component={PendingComponent()} />}\n >\n <MatchInner matchId={props.matchId} />\n </Solid.Show>\n </Solid.Match>\n <Solid.Match when={!resolvedNoSsr}>\n <MatchInner matchId={props.matchId} />\n </Solid.Match>\n </Solid.Switch>\n </Dynamic>\n </Dynamic>\n </Dynamic>\n </matchContext.Provider>\n\n {parentRouteId() === rootRouteId ? (\n <>\n <OnRendered />\n <ScrollRestoration />\n </>\n ) : null}\n </ShellComponent>\n )\n}\n\n// On Rendered can't happen above the root layout because it actually\n// renders a dummy dom element to track the rendered state of the app.\n// We render a script tag with a key that changes based on the current\n// location state.__TSR_key. Also, because it's below the root layout, it\n// allows us to fire onRendered events even after a hydration mismatch\n// error that occurred above the root layout (like bad head/link tags,\n// which is common).\nfunction OnRendered() {\n const router = useRouter()\n\n const location = useRouterState({\n select: (s) => {\n return s.resolvedLocation?.state.__TSR_key\n },\n })\n Solid.createEffect(\n Solid.on([location], () => {\n router.emit({\n type: 'onRendered',\n ...getLocationChangeInfo(router.state),\n })\n }),\n )\n return null\n}\n\nexport const MatchInner = (props: { matchId: string }): any => {\n const router = useRouter()\n\n const matchState = useRouterState({\n select: (s) => {\n const match = s.matches.find((d) => d.id === props.matchId)!\n const routeId = match.routeId as string\n\n const remountFn =\n (router.routesById[routeId] as AnyRoute).options.remountDeps ??\n router.options.defaultRemountDeps\n const remountDeps = remountFn?.({\n routeId,\n loaderDeps: match.loaderDeps,\n params: match._strictParams,\n search: match._strictSearch,\n })\n const key = remountDeps ? JSON.stringify(remountDeps) : undefined\n\n return {\n key,\n routeId,\n match: {\n id: match.id,\n status: match.status,\n error: match.error,\n _forcePending: match._forcePending,\n _displayPending: match._displayPending,\n },\n }\n },\n })\n\n const route = () => router.routesById[matchState().routeId]!\n\n const match = () => matchState().match\n\n const out = () => {\n const Comp = route().options.component ?? router.options.defaultComponent\n if (Comp) {\n const key = matchState().key ?? matchState().match.id\n return (\n <Solid.Show when={key} keyed>\n <Comp />\n </Solid.Show>\n )\n }\n return <Outlet />\n }\n\n return (\n <Solid.Switch>\n <Solid.Match when={match()._displayPending}>\n {(_) => {\n const [displayPendingResult] = Solid.createResource(\n () =>\n router.getMatch(match().id)?._nonReactive.displayPendingPromise,\n )\n\n return <>{displayPendingResult()}</>\n }}\n </Solid.Match>\n <Solid.Match when={match()._forcePending}>\n {(_) => {\n const [minPendingResult] = Solid.createResource(\n () => router.getMatch(match().id)?._nonReactive.minPendingPromise,\n )\n\n return <>{minPendingResult()}</>\n }}\n </Solid.Match>\n <Solid.Match when={match().status === 'pending'}>\n {(_) => {\n const pendingMinMs =\n route().options.pendingMinMs ?? router.options.defaultPendingMinMs\n\n if (pendingMinMs) {\n const routerMatch = router.getMatch(match().id)\n if (routerMatch && !routerMatch._nonReactive.minPendingPromise) {\n // Create a promise that will resolve after the minPendingMs\n if (!router.isServer) {\n const minPendingPromise = createControlledPromise<void>()\n\n routerMatch._nonReactive.minPendingPromise = minPendingPromise\n\n setTimeout(() => {\n minPendingPromise.resolve()\n // We've handled the minPendingPromise, so we can delete it\n routerMatch._nonReactive.minPendingPromise = undefined\n }, pendingMinMs)\n }\n }\n }\n\n const [loaderResult] = Solid.createResource(async () => {\n await new Promise((r) => setTimeout(r, 0))\n return router.getMatch(match().id)?._nonReactive.loadPromise\n })\n\n return <>{loaderResult()}</>\n }}\n </Solid.Match>\n <Solid.Match when={match().status === 'notFound'}>\n {(_) => {\n invariant(isNotFound(match().error), 'Expected a notFound error')\n\n return renderRouteNotFound(router, route(), match().error)\n }}\n </Solid.Match>\n <Solid.Match when={match().status === 'redirected'}>\n {(_) => {\n invariant(isRedirect(match().error), 'Expected a redirect error')\n\n const [loaderResult] = Solid.createResource(async () => {\n await new Promise((r) => setTimeout(r, 0))\n return router.getMatch(match().id)?._nonReactive.loadPromise\n })\n\n return <>{loaderResult()}</>\n }}\n </Solid.Match>\n <Solid.Match when={match().status === 'error'}>\n {(_) => {\n if (router.isServer) {\n const RouteErrorComponent =\n (route().options.errorComponent ??\n router.options.defaultErrorComponent) ||\n ErrorComponent\n\n return (\n <RouteErrorComponent\n error={match().error}\n info={{\n componentStack: '',\n }}\n />\n )\n }\n\n throw match().error\n }}\n </Solid.Match>\n <Solid.Match when={match().status === 'success'}>{out()}</Solid.Match>\n </Solid.Switch>\n )\n}\n\nexport const Outlet = () => {\n const router = useRouter()\n const matchId = Solid.useContext(matchContext)\n const routeId = useRouterState({\n select: (s) => s.matches.find((d) => d.id === matchId())?.routeId as string,\n })\n\n const route = () => router.routesById[routeId()]!\n\n const parentGlobalNotFound = useRouterState({\n select: (s) => {\n const matches = s.matches\n const parentMatch = matches.find((d) => d.id === matchId())\n invariant(\n parentMatch,\n `Could not find parent match for matchId \"${matchId()}\"`,\n )\n return parentMatch.globalNotFound\n },\n })\n\n const childMatchId = useRouterState({\n select: (s) => {\n const matches = s.matches\n const index = matches.findIndex((d) => d.id === matchId())\n const v = matches[index + 1]?.id\n return v\n },\n })\n\n return (\n <Solid.Switch>\n <Solid.Match when={parentGlobalNotFound()}>\n {renderRouteNotFound(router, route(), undefined)}\n </Solid.Match>\n <Solid.Match when={childMatchId()}>\n {(matchId) => {\n // const nextMatch = <Match matchId={matchId()} />\n\n return (\n <Solid.Show\n when={matchId() === rootRouteId}\n fallback={<Match matchId={matchId()} />}\n >\n <Solid.Suspense\n fallback={\n <Dynamic component={router.options.defaultPendingComponent} />\n }\n >\n <Match matchId={matchId()} />\n </Solid.Suspense>\n </Solid.Show>\n )\n }}\n </Solid.Match>\n </Solid.Switch>\n )\n}\n"],"names":["Match","props","router","useRouter","matchState","useRouterState","select","s","match","matches","find","d","id","matchId","invariant","routeId","ssr","_displayPending","route","routesById","PendingComponent","options","pendingComponent","defaultPendingComponent","routeErrorComponent","errorComponent","defaultErrorComponent","routeOnCatch","onCatch","defaultOnCatch","routeNotFoundComponent","isRoot","notFoundComponent","notFoundRoute","component","resolvedNoSsr","ResolvedSuspenseBoundary","wrapInSuspense","preload","Solid","Suspense","SafeFragment","ResolvedCatchBoundary","CatchBoundary","ResolvedNotFoundBoundary","CatchNotFound","resetKey","loadedAt","parentRouteId","index","findIndex","ShellComponent","shellComponent","_$createComponent","children","matchContext","Provider","value","Dynamic","fallback","getResetKey","ErrorComponent","error","isNotFound","warning","_$mergeProps","Switch","when","Show","isServer","MatchInner","_$memo","rootRouteId","OnRendered","ScrollRestoration","location","resolvedLocation","state","__TSR_key","createEffect","on","emit","type","getLocationChangeInfo","remountFn","remountDeps","defaultRemountDeps","loaderDeps","params","_strictParams","search","_strictSearch","key","JSON","stringify","undefined","status","_forcePending","out","Comp","defaultComponent","keyed","Outlet","_","displayPendingResult","createResource","getMatch","_nonReactive","displayPendingPromise","minPendingResult","minPendingPromise","pendingMinMs","defaultPendingMinMs","routerMatch","createControlledPromise","setTimeout","resolve","loaderResult","Promise","r","loadPromise","renderRouteNotFound","isRedirect","RouteErrorComponent","info","componentStack","useContext","parentGlobalNotFound","parentMatch","globalNotFound","childMatchId","v"],"mappings":";;;;;;;;;;;;;AAqBO,MAAMA,QAAQA,CAACC,UAA+B;AACnD,QAAMC,SAASC,UAAAA;AACf,QAAMC,aAAaC,eAAe;AAAA,IAChCC,QAASC,CAAAA,MAAM;AACb,YAAMC,QAAQD,EAAEE,QAAQC,KAAMC,OAAMA,EAAEC,OAAOX,MAAMY,OAAO;AAE1DC,gBACEN,OACA,qCAAqCP,MAAMY,OAAO,0BACpD;AACA,aAAO;AAAA,QACLE,SAASP,MAAMO;AAAAA,QACfC,KAAKR,MAAMQ;AAAAA,QACXC,iBAAiBT,MAAMS;AAAAA,MAAAA;AAAAA,IAE3B;AAAA,EAAA,CACD;AAED,QAAMC,QAAwBA,MAAMhB,OAAOiB,WAAWf,WAAAA,EAAaW,OAAO;AAE1E,QAAMK,mBAAmBA,MACvBF,MAAAA,EAAQG,QAAQC,oBAAoBpB,OAAOmB,QAAQE;AAErD,QAAMC,sBAAsBA,MAC1BN,MAAAA,EAAQG,QAAQI,kBAAkBvB,OAAOmB,QAAQK;AAEnD,QAAMC,eAAeA,MACnBT,MAAAA,EAAQG,QAAQO,WAAW1B,OAAOmB,QAAQQ;AAE5C,QAAMC,yBAAyBA,MAC7BZ,MAAAA,EAAQa;AAAAA;AAAAA,IAEHb,QAAQG,QAAQW,qBACjB9B,OAAOmB,QAAQY,eAAeZ,QAAQa;AAAAA,MACtChB,MAAAA,EAAQG,QAAQW;AAEtB,QAAMG,gBACJ/B,aAAaY,QAAQ,SAASZ,WAAAA,EAAaY,QAAQ;AAErD,QAAMoB,2BAA2BA;AAAAA;AAAAA,KAE9B,CAAClB,MAAAA,EAAQa,UACRb,MAAAA,EAAQG,QAAQgB,kBAChBF,iBACA/B,WAAAA,EAAaa,qBACdC,QAAQG,QAAQgB,kBACfjB,uBACEF,MAAAA,EAAQG,QAAQI,gBAAwBa,WAAWH,kBACnDI,MAAMC,WACNC;AAAAA;AAEN,QAAMC,wBAAwBA,MAC5BlB,oBAAAA,IAAwBmB,gBAAgBF;AAE1C,QAAMG,2BAA2BA,MAC/Bd,uBAAAA,IAA2Be,gBAAgBJ;AAE7C,QAAMK,WAAWzC,eAAe;AAAA,IAC9BC,QAASC,OAAMA,EAAEwC;AAAAA,EAAAA,CAClB;AAED,QAAMC,gBAAgB3C,eAAe;AAAA,IACnCC,QAASC,CAAAA,MAAM;AACb,YAAM0C,QAAQ1C,EAAEE,QAAQyC,UAAWvC,OAAMA,EAAEC,OAAOX,MAAMY,OAAO;AAC/D,aAAON,EAAEE,QAAQwC,QAAQ,CAAC,GAAGlC;AAAAA,IAC/B;AAAA,EAAA,CACD;AAED,QAAMoC,iBAAiBjC,QAAQa,SACzBb,QAAQG,QAA6B+B,kBAAkBX,eACzDA;AAEJ,SAAAY,gBACGF,gBAAc;AAAA,IAAA,IAAAG,WAAA;AAAA,aAAA,CAAAD,gBACZE,aAAaC,UAAQ;AAAA,QAACC,OAAOA,MAAMxD,MAAMY;AAAAA,QAAO,IAAAyC,WAAA;AAAA,iBAAAD,gBAC9CK,SAAO;AAAA,YAAA,IACNxB,YAAS;AAAA,qBAAEE,yBAAAA;AAAAA,YAA0B;AAAA,YAAA,IACrCuB,WAAQ;AAAA,qBAAAN,gBAAGK,SAAO;AAAA,gBAAA,IAACxB,YAAS;AAAA,yBAAEd,iBAAAA;AAAAA,gBAAkB;AAAA,cAAA,CAAA;AAAA,YAAA;AAAA,YAAA,IAAAkC,WAAA;AAAA,qBAAAD,gBAE/CK,SAAO;AAAA,gBAAA,IACNxB,YAAS;AAAA,yBAAEQ,sBAAAA;AAAAA,gBAAuB;AAAA,gBAClCkB,aAAaA,MAAMd,SAAAA;AAAAA,gBAAU,IAC7BrB,iBAAc;AAAA,yBAAED,yBAAyBqC;AAAAA,gBAAc;AAAA,gBACvDjC,SAASA,CAACkC,UAAiB;AAEzB,sBAAIC,WAAWD,KAAK,EAAG,OAAMA;AAC7BE,0BAAQ,OAAO,yBAAyB/D,MAAMY,OAAO,EAAE;AACvDc,+BAAAA,IAAiBmC,KAAK;AAAA,gBACxB;AAAA,gBAAC,IAAAR,WAAA;AAAA,yBAAAD,gBAEAK,SAAO;AAAA,oBAAA,IACNxB,YAAS;AAAA,6BAAEU,yBAAAA;AAAAA,oBAA0B;AAAA,oBACrCe,UAAUA,CAACG,UAAe;AAGxB,0BACE,CAAChC,uBAAAA,KACAgC,MAAM/C,WAAW+C,MAAM/C,YAAYX,WAAAA,EAAaW,WAChD,CAAC+C,MAAM/C,WAAW,CAACG,MAAAA,EAAQa,OAE5B,OAAM+B;AAER,6BAAAT,gBACGK,SAAOO,WAAA;AAAA,wBAAA,IAAC/B,YAAS;AAAA,iCAAEJ,uBAAAA;AAAAA,wBAAwB;AAAA,sBAAA,GAAMgC,KAAK,CAAA;AAAA,oBAE3D;AAAA,oBAAC,IAAAR,WAAA;AAAA,6BAAAD,gBAEAd,MAAM2B,QAAM;AAAA,wBAAA,IAAAZ,WAAA;AAAA,iCAAA,CAAAD,gBACVd,MAAMvC,OAAK;AAAA,4BAACmE,MAAMhC;AAAAA,4BAAa,IAAAmB,WAAA;AAAA,qCAAAD,gBAC7Bd,MAAM6B,MAAI;AAAA,gCAAA,IACTD,OAAI;AAAA,yCAAE,CAACjE,OAAOmE;AAAAA,gCAAQ;AAAA,gCAAA,IACtBV,WAAQ;AAAA,yCAAAN,gBAAGK,SAAO;AAAA,oCAAA,IAACxB,YAAS;AAAA,6CAAEd,iBAAAA;AAAAA,oCAAkB;AAAA,kCAAA,CAAA;AAAA,gCAAA;AAAA,gCAAA,IAAAkC,WAAA;AAAA,yCAAAD,gBAE/CiB,YAAU;AAAA,oCAAA,IAACzD,UAAO;AAAA,6CAAEZ,MAAMY;AAAAA,oCAAO;AAAA,kCAAA,CAAA;AAAA,gCAAA;AAAA,8BAAA,CAAA;AAAA,4BAAA;AAAA,0BAAA,CAAA,GAAAwC,gBAGrCd,MAAMvC,OAAK;AAAA,4BAACmE,MAAM,CAAChC;AAAAA,4BAAa,IAAAmB,WAAA;AAAA,qCAAAD,gBAC9BiB,YAAU;AAAA,gCAAA,IAACzD,UAAO;AAAA,yCAAEZ,MAAMY;AAAAA,gCAAO;AAAA,8BAAA,CAAA;AAAA,4BAAA;AAAA,0BAAA,CAAA,CAAA;AAAA,wBAAA;AAAA,sBAAA,CAAA;AAAA,oBAAA;AAAA,kBAAA,CAAA;AAAA,gBAAA;AAAA,cAAA,CAAA;AAAA,YAAA;AAAA,UAAA,CAAA;AAAA,QAAA;AAAA,MAAA,CAAA,GAAA0D,KAAA,MAQ7CA,WAAAvB,cAAAA,MAAoBwB,WAAW,MAAA,CAAAnB,gBAE3BoB,YAAU,CAAA,CAAA,GAAApB,gBACVqB,0BAED,IAAI,CAAA;AAAA,IAAA;AAAA,EAAA,CAAA;AAGd;AASA,SAASD,aAAa;AACpB,QAAMvE,SAASC,UAAAA;AAEf,QAAMwE,WAAWtE,eAAe;AAAA,IAC9BC,QAASC,CAAAA,MAAM;AACb,aAAOA,EAAEqE,kBAAkBC,MAAMC;AAAAA,IACnC;AAAA,EAAA,CACD;AACDvC,QAAMwC,aACJxC,MAAMyC,GAAG,CAACL,QAAQ,GAAG,MAAM;AACzBzE,WAAO+E,KAAK;AAAA,MACVC,MAAM;AAAA,MACN,GAAGC,sBAAsBjF,OAAO2E,KAAK;AAAA,IAAA,CACtC;AAAA,EACH,CAAC,CACH;AACA,SAAO;AACT;AAEO,MAAMP,aAAaA,CAACrE,UAAoC;AAC7D,QAAMC,SAASC,UAAAA;AAEf,QAAMC,aAAaC,eAAe;AAAA,IAChCC,QAASC,CAAAA,MAAM;AACb,YAAMC,SAAQD,EAAEE,QAAQC,KAAMC,OAAMA,EAAEC,OAAOX,MAAMY,OAAO;AAC1D,YAAME,UAAUP,OAAMO;AAEtB,YAAMqE,YACHlF,OAAOiB,WAAWJ,OAAO,EAAeM,QAAQgE,eACjDnF,OAAOmB,QAAQiE;AACjB,YAAMD,cAAcD,YAAY;AAAA,QAC9BrE;AAAAA,QACAwE,YAAY/E,OAAM+E;AAAAA,QAClBC,QAAQhF,OAAMiF;AAAAA,QACdC,QAAQlF,OAAMmF;AAAAA,MAAAA,CACf;AACD,YAAMC,MAAMP,cAAcQ,KAAKC,UAAUT,WAAW,IAAIU;AAExD,aAAO;AAAA,QACLH;AAAAA,QACA7E;AAAAA,QACAP,OAAO;AAAA,UACLI,IAAIJ,OAAMI;AAAAA,UACVoF,QAAQxF,OAAMwF;AAAAA,UACdlC,OAAOtD,OAAMsD;AAAAA,UACbmC,eAAezF,OAAMyF;AAAAA,UACrBhF,iBAAiBT,OAAMS;AAAAA,QAAAA;AAAAA,MACzB;AAAA,IAEJ;AAAA,EAAA,CACD;AAED,QAAMC,QAAQA,MAAMhB,OAAOiB,WAAWf,WAAAA,EAAaW,OAAO;AAE1D,QAAMP,QAAQA,MAAMJ,WAAAA,EAAaI;AAEjC,QAAM0F,MAAMA,MAAM;AAChB,UAAMC,OAAOjF,QAAQG,QAAQa,aAAahC,OAAOmB,QAAQ+E;AACzD,QAAID,MAAM;AACR,YAAMP,MAAMxF,WAAAA,EAAawF,OAAOxF,WAAAA,EAAaI,MAAMI;AACnD,aAAAyC,gBACGd,MAAM6B,MAAI;AAAA,QAACD,MAAMyB;AAAAA,QAAKS,OAAK;AAAA,QAAA,IAAA/C,WAAA;AAAA,iBAAAD,gBACzB8C,MAAI,EAAA;AAAA,QAAA;AAAA,MAAA,CAAA;AAAA,IAGX;AACA,WAAA9C,gBAAQiD,QAAM,EAAA;AAAA,EAChB;AAEA,SAAAjD,gBACGd,MAAM2B,QAAM;AAAA,IAAA,IAAAZ,WAAA;AAAA,aAAA,CAAAD,gBACVd,MAAMvC,OAAK;AAAA,QAAA,IAACmE,OAAI;AAAA,iBAAE3D,QAAQS;AAAAA,QAAe;AAAA,QAAAqC,UACtCiD,CAAAA,MAAM;AACN,gBAAM,CAACC,oBAAoB,IAAIjE,MAAMkE,eACnC,MACEvG,OAAOwG,SAASlG,MAAAA,EAAQI,EAAE,GAAG+F,aAAaC,qBAC9C;AAEA,iBAAArC,KAAUiC,oBAAoB;AAAA,QAChC;AAAA,MAAA,CAAC,GAAAnD,gBAEFd,MAAMvC,OAAK;AAAA,QAAA,IAACmE,OAAI;AAAA,iBAAE3D,QAAQyF;AAAAA,QAAa;AAAA,QAAA3C,UACpCiD,CAAAA,MAAM;AACN,gBAAM,CAACM,gBAAgB,IAAItE,MAAMkE,eAC/B,MAAMvG,OAAOwG,SAASlG,MAAAA,EAAQI,EAAE,GAAG+F,aAAaG,iBAClD;AAEA,iBAAAvC,KAAUsC,gBAAgB;AAAA,QAC5B;AAAA,MAAA,CAAC,GAAAxD,gBAEFd,MAAMvC,OAAK;AAAA,QAAA,IAACmE,OAAI;AAAA,iBAAE3D,MAAAA,EAAQwF,WAAW;AAAA,QAAS;AAAA,QAAA1C,UAC3CiD,CAAAA,MAAM;AACN,gBAAMQ,eACJ7F,QAAQG,QAAQ0F,gBAAgB7G,OAAOmB,QAAQ2F;AAEjD,cAAID,cAAc;AAChB,kBAAME,cAAc/G,OAAOwG,SAASlG,MAAAA,EAAQI,EAAE;AAC9C,gBAAIqG,eAAe,CAACA,YAAYN,aAAaG,mBAAmB;AAE9D,kBAAI,CAAC5G,OAAOmE,UAAU;AACpB,sBAAMyC,oBAAoBI,wBAAAA;AAE1BD,4BAAYN,aAAaG,oBAAoBA;AAE7CK,2BAAW,MAAM;AACfL,oCAAkBM,QAAAA;AAElBH,8BAAYN,aAAaG,oBAAoBf;AAAAA,gBAC/C,GAAGgB,YAAY;AAAA,cACjB;AAAA,YACF;AAAA,UACF;AAEA,gBAAM,CAACM,YAAY,IAAI9E,MAAMkE,eAAe,YAAY;AACtD,kBAAM,IAAIa,QAASC,CAAAA,MAAMJ,WAAWI,GAAG,CAAC,CAAC;AACzC,mBAAOrH,OAAOwG,SAASlG,MAAAA,EAAQI,EAAE,GAAG+F,aAAaa;AAAAA,UACnD,CAAC;AAED,iBAAAjD,KAAU8C,YAAY;AAAA,QACxB;AAAA,MAAA,CAAC,GAAAhE,gBAEFd,MAAMvC,OAAK;AAAA,QAAA,IAACmE,OAAI;AAAA,iBAAE3D,MAAAA,EAAQwF,WAAW;AAAA,QAAU;AAAA,QAAA1C,UAC5CiD,CAAAA,MAAM;AACNzF,oBAAUiD,WAAWvD,MAAAA,EAAQsD,KAAK,GAAG,2BAA2B;AAEhE,iBAAO2D,oBAAoBvH,QAAQgB,MAAAA,GAASV,MAAAA,EAAQsD,KAAK;AAAA,QAC3D;AAAA,MAAA,CAAC,GAAAT,gBAEFd,MAAMvC,OAAK;AAAA,QAAA,IAACmE,OAAI;AAAA,iBAAE3D,MAAAA,EAAQwF,WAAW;AAAA,QAAY;AAAA,QAAA1C,UAC9CiD,CAAAA,MAAM;AACNzF,oBAAU4G,WAAWlH,MAAAA,EAAQsD,KAAK,GAAG,2BAA2B;AAEhE,gBAAM,CAACuD,YAAY,IAAI9E,MAAMkE,eAAe,YAAY;AACtD,kBAAM,IAAIa,QAASC,CAAAA,MAAMJ,WAAWI,GAAG,CAAC,CAAC;AACzC,mBAAOrH,OAAOwG,SAASlG,MAAAA,EAAQI,EAAE,GAAG+F,aAAaa;AAAAA,UACnD,CAAC;AAED,iBAAAjD,KAAU8C,YAAY;AAAA,QACxB;AAAA,MAAA,CAAC,GAAAhE,gBAEFd,MAAMvC,OAAK;AAAA,QAAA,IAACmE,OAAI;AAAA,iBAAE3D,MAAAA,EAAQwF,WAAW;AAAA,QAAO;AAAA,QAAA1C,UACzCiD,CAAAA,MAAM;AACN,cAAIrG,OAAOmE,UAAU;AACnB,kBAAMsD,uBACHzG,QAAQG,QAAQI,kBACfvB,OAAOmB,QAAQK,0BACjBmC;AAEF,mBAAAR,gBACGsE,qBAAmB;AAAA,cAAA,IAClB7D,QAAK;AAAA,uBAAEtD,QAAQsD;AAAAA,cAAK;AAAA,cACpB8D,MAAM;AAAA,gBACJC,gBAAgB;AAAA,cAAA;AAAA,YAClB,CAAC;AAAA,UAGP;AAEA,gBAAMrH,QAAQsD;AAAAA,QAChB;AAAA,MAAA,CAAC,GAAAT,gBAEFd,MAAMvC,OAAK;AAAA,QAAA,IAACmE,OAAI;AAAA,iBAAE3D,MAAAA,EAAQwF,WAAW;AAAA,QAAS;AAAA,QAAA,IAAA1C,WAAA;AAAA,iBAAG4C,IAAAA;AAAAA,QAAK;AAAA,MAAA,CAAA,CAAA;AAAA,IAAA;AAAA,EAAA,CAAA;AAG7D;AAEO,MAAMI,SAASA,MAAM;AAC1B,QAAMpG,SAASC,UAAAA;AACf,QAAMU,UAAU0B,MAAMuF,WAAWvE,YAAY;AAC7C,QAAMxC,UAAUV,eAAe;AAAA,IAC7BC,QAASC,CAAAA,MAAMA,EAAEE,QAAQC,KAAMC,OAAMA,EAAEC,OAAOC,QAAAA,CAAS,GAAGE;AAAAA,EAAAA,CAC3D;AAED,QAAMG,QAAQA,MAAMhB,OAAOiB,WAAWJ,SAAS;AAE/C,QAAMgH,uBAAuB1H,eAAe;AAAA,IAC1CC,QAASC,CAAAA,MAAM;AACb,YAAME,UAAUF,EAAEE;AAClB,YAAMuH,cAAcvH,QAAQC,KAAMC,OAAMA,EAAEC,OAAOC,SAAS;AAC1DC,gBACEkH,aACA,4CAA4CnH,QAAAA,CAAS,GACvD;AACA,aAAOmH,YAAYC;AAAAA,IACrB;AAAA,EAAA,CACD;AAED,QAAMC,eAAe7H,eAAe;AAAA,IAClCC,QAASC,CAAAA,MAAM;AACb,YAAME,UAAUF,EAAEE;AAClB,YAAMwC,QAAQxC,QAAQyC,UAAWvC,OAAMA,EAAEC,OAAOC,SAAS;AACzD,YAAMsH,IAAI1H,QAAQwC,QAAQ,CAAC,GAAGrC;AAC9B,aAAOuH;AAAAA,IACT;AAAA,EAAA,CACD;AAED,SAAA9E,gBACGd,MAAM2B,QAAM;AAAA,IAAA,IAAAZ,WAAA;AAAA,aAAA,CAAAD,gBACVd,MAAMvC,OAAK;AAAA,QAAA,IAACmE,OAAI;AAAA,iBAAE4D,qBAAAA;AAAAA,QAAsB;AAAA,QAAA,IAAAzE,WAAA;AAAA,iBACtCmE,oBAAoBvH,QAAQgB,MAAAA,GAAS6E,MAAS;AAAA,QAAC;AAAA,MAAA,CAAA,GAAA1C,gBAEjDd,MAAMvC,OAAK;AAAA,QAAA,IAACmE,OAAI;AAAA,iBAAE+D,aAAAA;AAAAA,QAAc;AAAA,QAAA5E,UAC7BzC,CAAAA,aAAY;AAGZ,iBAAAwC,gBACGd,MAAM6B,MAAI;AAAA,YAAA,IACTD,OAAI;AAAA,qBAAEtD,eAAc2D;AAAAA,YAAW;AAAA,YAAA,IAC/Bb,WAAQ;AAAA,qBAAAN,gBAAGrD,OAAK;AAAA,gBAAA,IAACa,UAAO;AAAA,yBAAEA,SAAAA;AAAAA,gBAAS;AAAA,cAAA,CAAA;AAAA,YAAA;AAAA,YAAA,IAAAyC,WAAA;AAAA,qBAAAD,gBAElCd,MAAMC,UAAQ;AAAA,gBAAA,IACbmB,WAAQ;AAAA,yBAAAN,gBACLK,SAAO;AAAA,oBAAA,IAACxB,YAAS;AAAA,6BAAEhC,OAAOmB,QAAQE;AAAAA,oBAAuB;AAAA,kBAAA,CAAA;AAAA,gBAAA;AAAA,gBAAA,IAAA+B,WAAA;AAAA,yBAAAD,gBAG3DrD,OAAK;AAAA,oBAAA,IAACa,UAAO;AAAA,6BAAEA,SAAAA;AAAAA,oBAAS;AAAA,kBAAA,CAAA;AAAA,gBAAA;AAAA,cAAA,CAAA;AAAA,YAAA;AAAA,UAAA,CAAA;AAAA,QAIjC;AAAA,MAAA,CAAC,CAAA;AAAA,IAAA;AAAA,EAAA,CAAA;AAIT;"}
@@ -10,7 +10,7 @@ import type * as Solid from 'solid-js';
10
10
  declare module '@tanstack/router-core' {
11
11
  interface UpdatableRouteOptionsExtensions {
12
12
  component?: RouteComponent;
13
- errorComponent?: false | null | ErrorRouteComponent;
13
+ errorComponent?: false | null | undefined | ErrorRouteComponent;
14
14
  notFoundComponent?: NotFoundRouteComponent;
15
15
  pendingComponent?: RouteComponent;
16
16
  }
@@ -1 +1 @@
1
- {"version":3,"file":"route.js","sources":["../../src/route.tsx"],"sourcesContent":["import {\n BaseRootRoute,\n BaseRoute,\n BaseRouteApi,\n notFound,\n} from '@tanstack/router-core'\nimport { Link } from './link'\nimport { useLoaderData } from './useLoaderData'\nimport { useLoaderDeps } from './useLoaderDeps'\nimport { useParams } from './useParams'\nimport { useSearch } from './useSearch'\nimport { useNavigate } from './useNavigate'\nimport { useMatch } from './useMatch'\nimport { useRouter } from './useRouter'\nimport type {\n AnyContext,\n AnyRoute,\n AnyRouter,\n ConstrainLiteral,\n ErrorComponentProps,\n NotFoundError,\n NotFoundRouteProps,\n RegisteredRouter,\n ResolveFullPath,\n ResolveId,\n ResolveParams,\n RootRoute as RootRouteCore,\n RootRouteId,\n RootRouteOptions,\n RouteConstraints,\n Route as RouteCore,\n RouteIds,\n RouteMask,\n RouteOptions,\n RouteTypesById,\n RouterCore,\n ToMaskOptions,\n UseNavigateResult,\n} from '@tanstack/router-core'\nimport type { UseLoaderDataRoute } from './useLoaderData'\nimport type { UseMatchRoute } from './useMatch'\nimport type { UseLoaderDepsRoute } from './useLoaderDeps'\nimport type { UseParamsRoute } from './useParams'\nimport type { UseSearchRoute } from './useSearch'\nimport type * as Solid from 'solid-js'\nimport type { UseRouteContextRoute } from './useRouteContext'\nimport type { LinkComponentRoute } from './link'\n\ndeclare module '@tanstack/router-core' {\n export interface UpdatableRouteOptionsExtensions {\n component?: RouteComponent\n errorComponent?: false | null | ErrorRouteComponent\n notFoundComponent?: NotFoundRouteComponent\n pendingComponent?: RouteComponent\n }\n\n export interface RootRouteOptionsExtensions {\n shellComponent?: ({\n children,\n }: {\n children: Solid.JSX.Element\n }) => Solid.JSX.Element\n }\n\n export interface RouteExtensions<\n in out TId extends string,\n in out TFullPath extends string,\n > {\n useMatch: UseMatchRoute<TId>\n useRouteContext: UseRouteContextRoute<TId>\n useSearch: UseSearchRoute<TId>\n useParams: UseParamsRoute<TId>\n useLoaderDeps: UseLoaderDepsRoute<TId>\n useLoaderData: UseLoaderDataRoute<TId>\n useNavigate: () => UseNavigateResult<TFullPath>\n Link: LinkComponentRoute<TFullPath>\n }\n}\n\nexport function getRouteApi<\n const TId,\n TRouter extends AnyRouter = RegisteredRouter,\n>(id: ConstrainLiteral<TId, RouteIds<TRouter['routeTree']>>) {\n return new RouteApi<TId, TRouter>({ id })\n}\n\nexport class RouteApi<\n TId,\n TRouter extends AnyRouter = RegisteredRouter,\n> extends BaseRouteApi<TId, TRouter> {\n /**\n * @deprecated Use the `getRouteApi` function instead.\n */\n constructor({ id }: { id: TId }) {\n super({ id })\n }\n\n useMatch: UseMatchRoute<TId> = (opts) => {\n return useMatch({\n select: opts?.select,\n from: this.id,\n } as any) as any\n }\n\n useRouteContext: UseRouteContextRoute<TId> = (opts) => {\n return useMatch({\n from: this.id as any,\n select: (d) => (opts?.select ? opts.select(d.context) : d.context),\n }) as any\n }\n\n useSearch: UseSearchRoute<TId> = (opts) => {\n return useSearch({\n select: opts?.select,\n from: this.id,\n } as any) as any\n }\n\n useParams: UseParamsRoute<TId> = (opts) => {\n return useParams({\n select: opts?.select,\n from: this.id,\n } as any) as any\n }\n\n useLoaderDeps: UseLoaderDepsRoute<TId> = (opts) => {\n return useLoaderDeps({ ...opts, from: this.id, strict: false } as any)\n }\n\n useLoaderData: UseLoaderDataRoute<TId> = (opts) => {\n return useLoaderData({ ...opts, from: this.id, strict: false } as any)\n }\n\n useNavigate = (): UseNavigateResult<\n RouteTypesById<TRouter, TId>['fullPath']\n > => {\n const router = useRouter()\n return useNavigate({ from: router.routesById[this.id as string].fullPath })\n }\n\n notFound = (opts?: NotFoundError) => {\n return notFound({ routeId: this.id as string, ...opts })\n }\n\n Link: LinkComponentRoute<RouteTypesById<TRouter, TId>['fullPath']> = ((\n props,\n ) => {\n const router = useRouter()\n const fullPath = router.routesById[this.id as string].fullPath\n return <Link from={fullPath as never} {...props} />\n }) as LinkComponentRoute<RouteTypesById<TRouter, TId>['fullPath']>\n}\n\nexport class Route<\n in out TParentRoute extends RouteConstraints['TParentRoute'] = AnyRoute,\n in out TPath extends RouteConstraints['TPath'] = '/',\n in out TFullPath extends RouteConstraints['TFullPath'] = ResolveFullPath<\n TParentRoute,\n TPath\n >,\n in out TCustomId extends RouteConstraints['TCustomId'] = string,\n in out TId extends RouteConstraints['TId'] = ResolveId<\n TParentRoute,\n TCustomId,\n TPath\n >,\n in out TSearchValidator = undefined,\n in out TParams = ResolveParams<TPath>,\n in out TRouterContext = AnyContext,\n in out TRouteContextFn = AnyContext,\n in out TBeforeLoadFn = AnyContext,\n in out TLoaderDeps extends Record<string, any> = {},\n in out TLoaderFn = undefined,\n in out TChildren = unknown,\n in out TFileRouteTypes = unknown,\n >\n extends BaseRoute<\n TParentRoute,\n TPath,\n TFullPath,\n TCustomId,\n TId,\n TSearchValidator,\n TParams,\n TRouterContext,\n TRouteContextFn,\n TBeforeLoadFn,\n TLoaderDeps,\n TLoaderFn,\n TChildren,\n TFileRouteTypes\n >\n implements\n RouteCore<\n TParentRoute,\n TPath,\n TFullPath,\n TCustomId,\n TId,\n TSearchValidator,\n TParams,\n TRouterContext,\n TRouteContextFn,\n TBeforeLoadFn,\n TLoaderDeps,\n TLoaderFn,\n TChildren,\n TFileRouteTypes\n >\n{\n /**\n * @deprecated Use the `createRoute` function instead.\n */\n constructor(\n options?: RouteOptions<\n TParentRoute,\n TId,\n TCustomId,\n TFullPath,\n TPath,\n TSearchValidator,\n TParams,\n TLoaderDeps,\n TLoaderFn,\n TRouterContext,\n TRouteContextFn,\n TBeforeLoadFn\n >,\n ) {\n super(options)\n }\n\n useMatch: UseMatchRoute<TId> = (opts) => {\n return useMatch({\n select: opts?.select,\n from: this.id,\n } as any) as any\n }\n\n useRouteContext: UseRouteContextRoute<TId> = (opts?) => {\n return useMatch({\n ...opts,\n from: this.id,\n select: (d) => (opts?.select ? opts.select(d.context) : d.context),\n }) as any\n }\n\n useSearch: UseSearchRoute<TId> = (opts) => {\n return useSearch({\n select: opts?.select,\n from: this.id,\n } as any) as any\n }\n\n useParams: UseParamsRoute<TId> = (opts) => {\n return useParams({\n select: opts?.select,\n from: this.id,\n } as any) as any\n }\n\n useLoaderDeps: UseLoaderDepsRoute<TId> = (opts) => {\n return useLoaderDeps({ ...opts, from: this.id } as any)\n }\n\n useLoaderData: UseLoaderDataRoute<TId> = (opts) => {\n return useLoaderData({ ...opts, from: this.id } as any)\n }\n\n useNavigate = (): UseNavigateResult<TFullPath> => {\n return useNavigate({ from: this.fullPath })\n }\n\n Link: LinkComponentRoute<TFullPath> = ((props) => {\n return <Link from={this.fullPath} {...props} />\n }) as LinkComponentRoute<TFullPath>\n}\n\nexport function createRoute<\n TParentRoute extends RouteConstraints['TParentRoute'] = AnyRoute,\n TPath extends RouteConstraints['TPath'] = '/',\n TFullPath extends RouteConstraints['TFullPath'] = ResolveFullPath<\n TParentRoute,\n TPath\n >,\n TCustomId extends RouteConstraints['TCustomId'] = string,\n TId extends RouteConstraints['TId'] = ResolveId<\n TParentRoute,\n TCustomId,\n TPath\n >,\n TSearchValidator = undefined,\n TParams = ResolveParams<TPath>,\n TRouteContextFn = AnyContext,\n TBeforeLoadFn = AnyContext,\n TLoaderDeps extends Record<string, any> = {},\n TLoaderFn = undefined,\n TChildren = unknown,\n>(\n options: RouteOptions<\n TParentRoute,\n TId,\n TCustomId,\n TFullPath,\n TPath,\n TSearchValidator,\n TParams,\n TLoaderDeps,\n TLoaderFn,\n AnyContext,\n TRouteContextFn,\n TBeforeLoadFn\n >,\n): Route<\n TParentRoute,\n TPath,\n TFullPath,\n TCustomId,\n TId,\n TSearchValidator,\n TParams,\n AnyContext,\n TRouteContextFn,\n TBeforeLoadFn,\n TLoaderDeps,\n TLoaderFn,\n TChildren,\n unknown\n> {\n return new Route<\n TParentRoute,\n TPath,\n TFullPath,\n TCustomId,\n TId,\n TSearchValidator,\n TParams,\n AnyContext,\n TRouteContextFn,\n TBeforeLoadFn,\n TLoaderDeps,\n TLoaderFn,\n TChildren,\n unknown\n >(options)\n}\n\nexport type AnyRootRoute = RootRoute<any, any, any, any, any, any, any, any>\n\nexport function createRootRouteWithContext<TRouterContext extends {}>() {\n return <\n TRouteContextFn = AnyContext,\n TBeforeLoadFn = AnyContext,\n TSearchValidator = undefined,\n TLoaderDeps extends Record<string, any> = {},\n TLoaderFn = undefined,\n >(\n options?: RootRouteOptions<\n TSearchValidator,\n TRouterContext,\n TRouteContextFn,\n TBeforeLoadFn,\n TLoaderDeps,\n TLoaderFn\n >,\n ) => {\n return createRootRoute<\n TSearchValidator,\n TRouterContext,\n TRouteContextFn,\n TBeforeLoadFn,\n TLoaderDeps,\n TLoaderFn\n >(options as any)\n }\n}\n\n/**\n * @deprecated Use the `createRootRouteWithContext` function instead.\n */\nexport const rootRouteWithContext = createRootRouteWithContext\n\nexport class RootRoute<\n in out TSearchValidator = undefined,\n in out TRouterContext = {},\n in out TRouteContextFn = AnyContext,\n in out TBeforeLoadFn = AnyContext,\n in out TLoaderDeps extends Record<string, any> = {},\n in out TLoaderFn = undefined,\n in out TChildren = unknown,\n in out TFileRouteTypes = unknown,\n >\n extends BaseRootRoute<\n TSearchValidator,\n TRouterContext,\n TRouteContextFn,\n TBeforeLoadFn,\n TLoaderDeps,\n TLoaderFn,\n TChildren,\n TFileRouteTypes\n >\n implements\n RootRouteCore<\n TSearchValidator,\n TRouterContext,\n TRouteContextFn,\n TBeforeLoadFn,\n TLoaderDeps,\n TLoaderFn,\n TChildren,\n TFileRouteTypes\n >\n{\n /**\n * @deprecated `RootRoute` is now an internal implementation detail. Use `createRootRoute()` instead.\n */\n constructor(\n options?: RootRouteOptions<\n TSearchValidator,\n TRouterContext,\n TRouteContextFn,\n TBeforeLoadFn,\n TLoaderDeps,\n TLoaderFn\n >,\n ) {\n super(options)\n }\n\n useMatch: UseMatchRoute<RootRouteId> = (opts) => {\n return useMatch({\n select: opts?.select,\n from: this.id,\n } as any) as any\n }\n\n useRouteContext: UseRouteContextRoute<RootRouteId> = (opts) => {\n return useMatch({\n ...opts,\n from: this.id,\n select: (d) => (opts?.select ? opts.select(d.context) : d.context),\n }) as any\n }\n\n useSearch: UseSearchRoute<RootRouteId> = (opts) => {\n return useSearch({\n select: opts?.select,\n from: this.id,\n } as any) as any\n }\n\n useParams: UseParamsRoute<RootRouteId> = (opts) => {\n return useParams({\n select: opts?.select,\n from: this.id,\n } as any) as any\n }\n\n useLoaderDeps: UseLoaderDepsRoute<RootRouteId> = (opts) => {\n return useLoaderDeps({ ...opts, from: this.id } as any)\n }\n\n useLoaderData: UseLoaderDataRoute<RootRouteId> = (opts) => {\n return useLoaderData({ ...opts, from: this.id } as any)\n }\n\n useNavigate = (): UseNavigateResult<'/'> => {\n return useNavigate({ from: this.fullPath })\n }\n\n Link: LinkComponentRoute<'/'> = ((props) => {\n return <Link from={this.fullPath} {...(props as any)} />\n }) as LinkComponentRoute<'/'>\n}\n\nexport function createRouteMask<\n TRouteTree extends AnyRoute,\n TFrom extends string,\n TTo extends string,\n>(\n opts: {\n routeTree: TRouteTree\n } & ToMaskOptions<RouterCore<TRouteTree, 'never', false>, TFrom, TTo>,\n): RouteMask<TRouteTree> {\n return opts as any\n}\n\nexport type SolidNode = Solid.JSX.Element\n\nexport interface DefaultRouteTypes<TProps> {\n component: (props: TProps) => any\n}\nexport interface RouteTypes<TProps> extends DefaultRouteTypes<TProps> {}\n\nexport type AsyncRouteComponent<TProps> = RouteTypes<TProps>['component'] & {\n preload?: () => Promise<void>\n}\n\nexport type RouteComponent = AsyncRouteComponent<{}>\n\nexport type ErrorRouteComponent = AsyncRouteComponent<ErrorComponentProps>\n\nexport type NotFoundRouteComponent = RouteTypes<NotFoundRouteProps>['component']\n\nexport class NotFoundRoute<\n TParentRoute extends AnyRootRoute,\n TRouterContext = AnyContext,\n TRouteContextFn = AnyContext,\n TBeforeLoadFn = AnyContext,\n TSearchValidator = undefined,\n TLoaderDeps extends Record<string, any> = {},\n TLoaderFn = undefined,\n TChildren = unknown,\n> extends Route<\n TParentRoute,\n '/404',\n '/404',\n '404',\n '404',\n TSearchValidator,\n {},\n TRouterContext,\n TRouteContextFn,\n TBeforeLoadFn,\n TLoaderDeps,\n TLoaderFn,\n TChildren\n> {\n constructor(\n options: Omit<\n RouteOptions<\n TParentRoute,\n string,\n string,\n string,\n string,\n TSearchValidator,\n {},\n TLoaderDeps,\n TLoaderFn,\n TRouterContext,\n TRouteContextFn,\n TBeforeLoadFn\n >,\n | 'caseSensitive'\n | 'parseParams'\n | 'stringifyParams'\n | 'path'\n | 'id'\n | 'params'\n >,\n ) {\n super({\n ...(options as any),\n id: '404',\n })\n }\n}\n\nexport function createRootRoute<\n TSearchValidator = undefined,\n TRouterContext = {},\n TRouteContextFn = AnyContext,\n TBeforeLoadFn = AnyContext,\n TLoaderDeps extends Record<string, any> = {},\n TLoaderFn = undefined,\n>(\n options?: RootRouteOptions<\n TSearchValidator,\n TRouterContext,\n TRouteContextFn,\n TBeforeLoadFn,\n TLoaderDeps,\n TLoaderFn\n >,\n): RootRoute<\n TSearchValidator,\n TRouterContext,\n TRouteContextFn,\n TBeforeLoadFn,\n TLoaderDeps,\n TLoaderFn,\n unknown,\n unknown\n> {\n return new RootRoute<\n TSearchValidator,\n TRouterContext,\n TRouteContextFn,\n TBeforeLoadFn,\n TLoaderDeps,\n TLoaderFn\n >(options)\n}\n"],"names":["getRouteApi","id","RouteApi","BaseRouteApi","constructor","useMatch","opts","select","from","useRouteContext","d","context","useSearch","useParams","useLoaderDeps","strict","useLoaderData","useNavigate","router","useRouter","routesById","fullPath","notFound","routeId","Link","props","_$createComponent","_$mergeProps","Route","BaseRoute","options","_self$","createRoute","createRootRouteWithContext","createRootRoute","rootRouteWithContext","RootRoute","BaseRootRoute","_self$2","createRouteMask","NotFoundRoute"],"mappings":";;;;;;;;;;AA+EO,SAASA,YAGdC,IAA2D;AAC3D,SAAO,IAAIC,SAAuB;AAAA,IAAED;AAAAA,EAAAA,CAAI;AAC1C;AAEO,MAAMC,iBAGHC,aAA2B;AAAA;AAAA;AAAA;AAAA,EAInCC,YAAY;AAAA,IAAEH;AAAAA,EAAAA,GAAmB;AAC/B,UAAM;AAAA,MAAEA;AAAAA,IAAAA,CAAI;AAGdI,SAAAA,WAAgCC,CAAAA,SAAS;AACvC,aAAOD,SAAS;AAAA,QACdE,QAAQD,MAAMC;AAAAA,QACdC,MAAM,KAAKP;AAAAA,MAAAA,CACL;AAAA,IACV;AAEAQ,SAAAA,kBAA8CH,CAAAA,SAAS;AACrD,aAAOD,SAAS;AAAA,QACdG,MAAM,KAAKP;AAAAA,QACXM,QAASG,OAAOJ,MAAMC,SAASD,KAAKC,OAAOG,EAAEC,OAAO,IAAID,EAAEC;AAAAA,MAAAA,CAC3D;AAAA,IACH;AAEAC,SAAAA,YAAkCN,CAAAA,SAAS;AACzC,aAAOM,UAAU;AAAA,QACfL,QAAQD,MAAMC;AAAAA,QACdC,MAAM,KAAKP;AAAAA,MAAAA,CACL;AAAA,IACV;AAEAY,SAAAA,YAAkCP,CAAAA,SAAS;AACzC,aAAOO,UAAU;AAAA,QACfN,QAAQD,MAAMC;AAAAA,QACdC,MAAM,KAAKP;AAAAA,MAAAA,CACL;AAAA,IACV;AAEAa,SAAAA,gBAA0CR,CAAAA,SAAS;AACjD,aAAOQ,cAAc;AAAA,QAAE,GAAGR;AAAAA,QAAME,MAAM,KAAKP;AAAAA,QAAIc,QAAQ;AAAA,MAAA,CAAc;AAAA,IACvE;AAEAC,SAAAA,gBAA0CV,CAAAA,SAAS;AACjD,aAAOU,cAAc;AAAA,QAAE,GAAGV;AAAAA,QAAME,MAAM,KAAKP;AAAAA,QAAIc,QAAQ;AAAA,MAAA,CAAc;AAAA,IACvE;AAEAE,SAAAA,cAAcA,MAET;AACH,YAAMC,SAASC,UAAAA;AACf,aAAOF,YAAY;AAAA,QAAET,MAAMU,OAAOE,WAAW,KAAKnB,EAAY,EAAEoB;AAAAA,MAAAA,CAAU;AAAA,IAC5E;AAEAC,SAAAA,WAAWA,CAAChB,SAAyB;AACnC,aAAOgB,SAAS;AAAA,QAAEC,SAAS,KAAKtB;AAAAA,QAAc,GAAGK;AAAAA,MAAAA,CAAM;AAAA,IACzD;AAEAkB,SAAAA,OACEC,CAAAA,UACG;AACH,YAAMP,SAASC,UAAAA;AACf,YAAME,WAAWH,OAAOE,WAAW,KAAKnB,EAAY,EAAEoB;AACtD,aAAAK,gBAAQF,MAAIG,WAAA;AAAA,QAACnB,MAAMa;AAAAA,MAAAA,GAAuBI,KAAK,CAAA;AAAA,IACjD;AAAA,EAvDA;AAwDF;AAEO,MAAMG,cAuBHC,UAiCV;AAAA;AAAA;AAAA;AAAA,EAIEzB,YACE0B,SAcA;AACA,UAAMA,OAAO;AAGfzB,SAAAA,WAAgCC,CAAAA,SAAS;AACvC,aAAOD,SAAS;AAAA,QACdE,QAAQD,MAAMC;AAAAA,QACdC,MAAM,KAAKP;AAAAA,MAAAA,CACL;AAAA,IACV;AAEAQ,SAAAA,kBAA6CA,CAACH,SAAU;AACtD,aAAOD,SAAS;AAAA,QACd,GAAGC;AAAAA,QACHE,MAAM,KAAKP;AAAAA,QACXM,QAASG,OAAOJ,MAAMC,SAASD,KAAKC,OAAOG,EAAEC,OAAO,IAAID,EAAEC;AAAAA,MAAAA,CAC3D;AAAA,IACH;AAEAC,SAAAA,YAAkCN,CAAAA,SAAS;AACzC,aAAOM,UAAU;AAAA,QACfL,QAAQD,MAAMC;AAAAA,QACdC,MAAM,KAAKP;AAAAA,MAAAA,CACL;AAAA,IACV;AAEAY,SAAAA,YAAkCP,CAAAA,SAAS;AACzC,aAAOO,UAAU;AAAA,QACfN,QAAQD,MAAMC;AAAAA,QACdC,MAAM,KAAKP;AAAAA,MAAAA,CACL;AAAA,IACV;AAEAa,SAAAA,gBAA0CR,CAAAA,SAAS;AACjD,aAAOQ,cAAc;AAAA,QAAE,GAAGR;AAAAA,QAAME,MAAM,KAAKP;AAAAA,MAAAA,CAAW;AAAA,IACxD;AAEAe,SAAAA,gBAA0CV,CAAAA,SAAS;AACjD,aAAOU,cAAc;AAAA,QAAE,GAAGV;AAAAA,QAAME,MAAM,KAAKP;AAAAA,MAAAA,CAAW;AAAA,IACxD;AAEAgB,SAAAA,cAAcA,MAAoC;AAChD,aAAOA,YAAY;AAAA,QAAET,MAAM,KAAKa;AAAAA,MAAAA,CAAU;AAAA,IAC5C;AAEAG,SAAAA,OAAwCC,CAAAA,UAAU;AAAA,YAAAM,SAAA;AAChD,aAAAL,gBAAQF,MAAIG,WAAA;AAAA,QAAA,IAACnB,OAAI;AAAA,iBAAEuB,OAAKV;AAAAA,QAAQ;AAAA,MAAA,GAAMI,KAAK,CAAA;AAAA,IAC7C;AAAA,EA7CA;AA8CF;AAEO,SAASO,YAqBdF,SA6BA;AACA,SAAO,IAAIF,MAeTE,OAAO;AACX;AAIO,SAASG,6BAAwD;AACtE,SAAO,CAOLH,YAQG;AACH,WAAOI,gBAOLJ,OAAc;AAAA,EAClB;AACF;AAKO,MAAMK,uBAAuBF;AAE7B,MAAMG,kBAUHC,cAqBV;AAAA;AAAA;AAAA;AAAA,EAIEjC,YACE0B,SAQA;AACA,UAAMA,OAAO;AAGfzB,SAAAA,WAAwCC,CAAAA,SAAS;AAC/C,aAAOD,SAAS;AAAA,QACdE,QAAQD,MAAMC;AAAAA,QACdC,MAAM,KAAKP;AAAAA,MAAAA,CACL;AAAA,IACV;AAEAQ,SAAAA,kBAAsDH,CAAAA,SAAS;AAC7D,aAAOD,SAAS;AAAA,QACd,GAAGC;AAAAA,QACHE,MAAM,KAAKP;AAAAA,QACXM,QAASG,OAAOJ,MAAMC,SAASD,KAAKC,OAAOG,EAAEC,OAAO,IAAID,EAAEC;AAAAA,MAAAA,CAC3D;AAAA,IACH;AAEAC,SAAAA,YAA0CN,CAAAA,SAAS;AACjD,aAAOM,UAAU;AAAA,QACfL,QAAQD,MAAMC;AAAAA,QACdC,MAAM,KAAKP;AAAAA,MAAAA,CACL;AAAA,IACV;AAEAY,SAAAA,YAA0CP,CAAAA,SAAS;AACjD,aAAOO,UAAU;AAAA,QACfN,QAAQD,MAAMC;AAAAA,QACdC,MAAM,KAAKP;AAAAA,MAAAA,CACL;AAAA,IACV;AAEAa,SAAAA,gBAAkDR,CAAAA,SAAS;AACzD,aAAOQ,cAAc;AAAA,QAAE,GAAGR;AAAAA,QAAME,MAAM,KAAKP;AAAAA,MAAAA,CAAW;AAAA,IACxD;AAEAe,SAAAA,gBAAkDV,CAAAA,SAAS;AACzD,aAAOU,cAAc;AAAA,QAAE,GAAGV;AAAAA,QAAME,MAAM,KAAKP;AAAAA,MAAAA,CAAW;AAAA,IACxD;AAEAgB,SAAAA,cAAcA,MAA8B;AAC1C,aAAOA,YAAY;AAAA,QAAET,MAAM,KAAKa;AAAAA,MAAAA,CAAU;AAAA,IAC5C;AAEAG,SAAAA,OAAkCC,CAAAA,UAAU;AAAA,YAAAa,UAAA;AAC1C,aAAAZ,gBAAQF,MAAIG,WAAA;AAAA,QAAA,IAACnB,OAAI;AAAA,iBAAE8B,QAAKjB;AAAAA,QAAQ;AAAA,MAAA,GAAOI,KAAY,CAAA;AAAA,IACrD;AAAA,EA7CA;AA8CF;AAEO,SAASc,gBAKdjC,MAGuB;AACvB,SAAOA;AACT;AAmBO,MAAMkC,sBASHZ,MAcR;AAAA,EACAxB,YACE0B,SAsBA;AACA,UAAM;AAAA,MACJ,GAAIA;AAAAA,MACJ7B,IAAI;AAAA,IAAA,CACL;AAAA,EACH;AACF;AAEO,SAASiC,gBAQdJ,SAiBA;AACA,SAAO,IAAIM,UAOTN,OAAO;AACX;"}
1
+ {"version":3,"file":"route.js","sources":["../../src/route.tsx"],"sourcesContent":["import {\n BaseRootRoute,\n BaseRoute,\n BaseRouteApi,\n notFound,\n} from '@tanstack/router-core'\nimport { Link } from './link'\nimport { useLoaderData } from './useLoaderData'\nimport { useLoaderDeps } from './useLoaderDeps'\nimport { useParams } from './useParams'\nimport { useSearch } from './useSearch'\nimport { useNavigate } from './useNavigate'\nimport { useMatch } from './useMatch'\nimport { useRouter } from './useRouter'\nimport type {\n AnyContext,\n AnyRoute,\n AnyRouter,\n ConstrainLiteral,\n ErrorComponentProps,\n NotFoundError,\n NotFoundRouteProps,\n RegisteredRouter,\n ResolveFullPath,\n ResolveId,\n ResolveParams,\n RootRoute as RootRouteCore,\n RootRouteId,\n RootRouteOptions,\n RouteConstraints,\n Route as RouteCore,\n RouteIds,\n RouteMask,\n RouteOptions,\n RouteTypesById,\n RouterCore,\n ToMaskOptions,\n UseNavigateResult,\n} from '@tanstack/router-core'\nimport type { UseLoaderDataRoute } from './useLoaderData'\nimport type { UseMatchRoute } from './useMatch'\nimport type { UseLoaderDepsRoute } from './useLoaderDeps'\nimport type { UseParamsRoute } from './useParams'\nimport type { UseSearchRoute } from './useSearch'\nimport type * as Solid from 'solid-js'\nimport type { UseRouteContextRoute } from './useRouteContext'\nimport type { LinkComponentRoute } from './link'\n\ndeclare module '@tanstack/router-core' {\n export interface UpdatableRouteOptionsExtensions {\n component?: RouteComponent\n errorComponent?: false | null | undefined | ErrorRouteComponent\n notFoundComponent?: NotFoundRouteComponent\n pendingComponent?: RouteComponent\n }\n\n export interface RootRouteOptionsExtensions {\n shellComponent?: ({\n children,\n }: {\n children: Solid.JSX.Element\n }) => Solid.JSX.Element\n }\n\n export interface RouteExtensions<\n in out TId extends string,\n in out TFullPath extends string,\n > {\n useMatch: UseMatchRoute<TId>\n useRouteContext: UseRouteContextRoute<TId>\n useSearch: UseSearchRoute<TId>\n useParams: UseParamsRoute<TId>\n useLoaderDeps: UseLoaderDepsRoute<TId>\n useLoaderData: UseLoaderDataRoute<TId>\n useNavigate: () => UseNavigateResult<TFullPath>\n Link: LinkComponentRoute<TFullPath>\n }\n}\n\nexport function getRouteApi<\n const TId,\n TRouter extends AnyRouter = RegisteredRouter,\n>(id: ConstrainLiteral<TId, RouteIds<TRouter['routeTree']>>) {\n return new RouteApi<TId, TRouter>({ id })\n}\n\nexport class RouteApi<\n TId,\n TRouter extends AnyRouter = RegisteredRouter,\n> extends BaseRouteApi<TId, TRouter> {\n /**\n * @deprecated Use the `getRouteApi` function instead.\n */\n constructor({ id }: { id: TId }) {\n super({ id })\n }\n\n useMatch: UseMatchRoute<TId> = (opts) => {\n return useMatch({\n select: opts?.select,\n from: this.id,\n } as any) as any\n }\n\n useRouteContext: UseRouteContextRoute<TId> = (opts) => {\n return useMatch({\n from: this.id as any,\n select: (d) => (opts?.select ? opts.select(d.context) : d.context),\n }) as any\n }\n\n useSearch: UseSearchRoute<TId> = (opts) => {\n return useSearch({\n select: opts?.select,\n from: this.id,\n } as any) as any\n }\n\n useParams: UseParamsRoute<TId> = (opts) => {\n return useParams({\n select: opts?.select,\n from: this.id,\n } as any) as any\n }\n\n useLoaderDeps: UseLoaderDepsRoute<TId> = (opts) => {\n return useLoaderDeps({ ...opts, from: this.id, strict: false } as any)\n }\n\n useLoaderData: UseLoaderDataRoute<TId> = (opts) => {\n return useLoaderData({ ...opts, from: this.id, strict: false } as any)\n }\n\n useNavigate = (): UseNavigateResult<\n RouteTypesById<TRouter, TId>['fullPath']\n > => {\n const router = useRouter()\n return useNavigate({ from: router.routesById[this.id as string].fullPath })\n }\n\n notFound = (opts?: NotFoundError) => {\n return notFound({ routeId: this.id as string, ...opts })\n }\n\n Link: LinkComponentRoute<RouteTypesById<TRouter, TId>['fullPath']> = ((\n props,\n ) => {\n const router = useRouter()\n const fullPath = router.routesById[this.id as string].fullPath\n return <Link from={fullPath as never} {...props} />\n }) as LinkComponentRoute<RouteTypesById<TRouter, TId>['fullPath']>\n}\n\nexport class Route<\n in out TParentRoute extends RouteConstraints['TParentRoute'] = AnyRoute,\n in out TPath extends RouteConstraints['TPath'] = '/',\n in out TFullPath extends RouteConstraints['TFullPath'] = ResolveFullPath<\n TParentRoute,\n TPath\n >,\n in out TCustomId extends RouteConstraints['TCustomId'] = string,\n in out TId extends RouteConstraints['TId'] = ResolveId<\n TParentRoute,\n TCustomId,\n TPath\n >,\n in out TSearchValidator = undefined,\n in out TParams = ResolveParams<TPath>,\n in out TRouterContext = AnyContext,\n in out TRouteContextFn = AnyContext,\n in out TBeforeLoadFn = AnyContext,\n in out TLoaderDeps extends Record<string, any> = {},\n in out TLoaderFn = undefined,\n in out TChildren = unknown,\n in out TFileRouteTypes = unknown,\n >\n extends BaseRoute<\n TParentRoute,\n TPath,\n TFullPath,\n TCustomId,\n TId,\n TSearchValidator,\n TParams,\n TRouterContext,\n TRouteContextFn,\n TBeforeLoadFn,\n TLoaderDeps,\n TLoaderFn,\n TChildren,\n TFileRouteTypes\n >\n implements\n RouteCore<\n TParentRoute,\n TPath,\n TFullPath,\n TCustomId,\n TId,\n TSearchValidator,\n TParams,\n TRouterContext,\n TRouteContextFn,\n TBeforeLoadFn,\n TLoaderDeps,\n TLoaderFn,\n TChildren,\n TFileRouteTypes\n >\n{\n /**\n * @deprecated Use the `createRoute` function instead.\n */\n constructor(\n options?: RouteOptions<\n TParentRoute,\n TId,\n TCustomId,\n TFullPath,\n TPath,\n TSearchValidator,\n TParams,\n TLoaderDeps,\n TLoaderFn,\n TRouterContext,\n TRouteContextFn,\n TBeforeLoadFn\n >,\n ) {\n super(options)\n }\n\n useMatch: UseMatchRoute<TId> = (opts) => {\n return useMatch({\n select: opts?.select,\n from: this.id,\n } as any) as any\n }\n\n useRouteContext: UseRouteContextRoute<TId> = (opts?) => {\n return useMatch({\n ...opts,\n from: this.id,\n select: (d) => (opts?.select ? opts.select(d.context) : d.context),\n }) as any\n }\n\n useSearch: UseSearchRoute<TId> = (opts) => {\n return useSearch({\n select: opts?.select,\n from: this.id,\n } as any) as any\n }\n\n useParams: UseParamsRoute<TId> = (opts) => {\n return useParams({\n select: opts?.select,\n from: this.id,\n } as any) as any\n }\n\n useLoaderDeps: UseLoaderDepsRoute<TId> = (opts) => {\n return useLoaderDeps({ ...opts, from: this.id } as any)\n }\n\n useLoaderData: UseLoaderDataRoute<TId> = (opts) => {\n return useLoaderData({ ...opts, from: this.id } as any)\n }\n\n useNavigate = (): UseNavigateResult<TFullPath> => {\n return useNavigate({ from: this.fullPath })\n }\n\n Link: LinkComponentRoute<TFullPath> = ((props) => {\n return <Link from={this.fullPath} {...props} />\n }) as LinkComponentRoute<TFullPath>\n}\n\nexport function createRoute<\n TParentRoute extends RouteConstraints['TParentRoute'] = AnyRoute,\n TPath extends RouteConstraints['TPath'] = '/',\n TFullPath extends RouteConstraints['TFullPath'] = ResolveFullPath<\n TParentRoute,\n TPath\n >,\n TCustomId extends RouteConstraints['TCustomId'] = string,\n TId extends RouteConstraints['TId'] = ResolveId<\n TParentRoute,\n TCustomId,\n TPath\n >,\n TSearchValidator = undefined,\n TParams = ResolveParams<TPath>,\n TRouteContextFn = AnyContext,\n TBeforeLoadFn = AnyContext,\n TLoaderDeps extends Record<string, any> = {},\n TLoaderFn = undefined,\n TChildren = unknown,\n>(\n options: RouteOptions<\n TParentRoute,\n TId,\n TCustomId,\n TFullPath,\n TPath,\n TSearchValidator,\n TParams,\n TLoaderDeps,\n TLoaderFn,\n AnyContext,\n TRouteContextFn,\n TBeforeLoadFn\n >,\n): Route<\n TParentRoute,\n TPath,\n TFullPath,\n TCustomId,\n TId,\n TSearchValidator,\n TParams,\n AnyContext,\n TRouteContextFn,\n TBeforeLoadFn,\n TLoaderDeps,\n TLoaderFn,\n TChildren,\n unknown\n> {\n return new Route<\n TParentRoute,\n TPath,\n TFullPath,\n TCustomId,\n TId,\n TSearchValidator,\n TParams,\n AnyContext,\n TRouteContextFn,\n TBeforeLoadFn,\n TLoaderDeps,\n TLoaderFn,\n TChildren,\n unknown\n >(options)\n}\n\nexport type AnyRootRoute = RootRoute<any, any, any, any, any, any, any, any>\n\nexport function createRootRouteWithContext<TRouterContext extends {}>() {\n return <\n TRouteContextFn = AnyContext,\n TBeforeLoadFn = AnyContext,\n TSearchValidator = undefined,\n TLoaderDeps extends Record<string, any> = {},\n TLoaderFn = undefined,\n >(\n options?: RootRouteOptions<\n TSearchValidator,\n TRouterContext,\n TRouteContextFn,\n TBeforeLoadFn,\n TLoaderDeps,\n TLoaderFn\n >,\n ) => {\n return createRootRoute<\n TSearchValidator,\n TRouterContext,\n TRouteContextFn,\n TBeforeLoadFn,\n TLoaderDeps,\n TLoaderFn\n >(options as any)\n }\n}\n\n/**\n * @deprecated Use the `createRootRouteWithContext` function instead.\n */\nexport const rootRouteWithContext = createRootRouteWithContext\n\nexport class RootRoute<\n in out TSearchValidator = undefined,\n in out TRouterContext = {},\n in out TRouteContextFn = AnyContext,\n in out TBeforeLoadFn = AnyContext,\n in out TLoaderDeps extends Record<string, any> = {},\n in out TLoaderFn = undefined,\n in out TChildren = unknown,\n in out TFileRouteTypes = unknown,\n >\n extends BaseRootRoute<\n TSearchValidator,\n TRouterContext,\n TRouteContextFn,\n TBeforeLoadFn,\n TLoaderDeps,\n TLoaderFn,\n TChildren,\n TFileRouteTypes\n >\n implements\n RootRouteCore<\n TSearchValidator,\n TRouterContext,\n TRouteContextFn,\n TBeforeLoadFn,\n TLoaderDeps,\n TLoaderFn,\n TChildren,\n TFileRouteTypes\n >\n{\n /**\n * @deprecated `RootRoute` is now an internal implementation detail. Use `createRootRoute()` instead.\n */\n constructor(\n options?: RootRouteOptions<\n TSearchValidator,\n TRouterContext,\n TRouteContextFn,\n TBeforeLoadFn,\n TLoaderDeps,\n TLoaderFn\n >,\n ) {\n super(options)\n }\n\n useMatch: UseMatchRoute<RootRouteId> = (opts) => {\n return useMatch({\n select: opts?.select,\n from: this.id,\n } as any) as any\n }\n\n useRouteContext: UseRouteContextRoute<RootRouteId> = (opts) => {\n return useMatch({\n ...opts,\n from: this.id,\n select: (d) => (opts?.select ? opts.select(d.context) : d.context),\n }) as any\n }\n\n useSearch: UseSearchRoute<RootRouteId> = (opts) => {\n return useSearch({\n select: opts?.select,\n from: this.id,\n } as any) as any\n }\n\n useParams: UseParamsRoute<RootRouteId> = (opts) => {\n return useParams({\n select: opts?.select,\n from: this.id,\n } as any) as any\n }\n\n useLoaderDeps: UseLoaderDepsRoute<RootRouteId> = (opts) => {\n return useLoaderDeps({ ...opts, from: this.id } as any)\n }\n\n useLoaderData: UseLoaderDataRoute<RootRouteId> = (opts) => {\n return useLoaderData({ ...opts, from: this.id } as any)\n }\n\n useNavigate = (): UseNavigateResult<'/'> => {\n return useNavigate({ from: this.fullPath })\n }\n\n Link: LinkComponentRoute<'/'> = ((props) => {\n return <Link from={this.fullPath} {...(props as any)} />\n }) as LinkComponentRoute<'/'>\n}\n\nexport function createRouteMask<\n TRouteTree extends AnyRoute,\n TFrom extends string,\n TTo extends string,\n>(\n opts: {\n routeTree: TRouteTree\n } & ToMaskOptions<RouterCore<TRouteTree, 'never', false>, TFrom, TTo>,\n): RouteMask<TRouteTree> {\n return opts as any\n}\n\nexport type SolidNode = Solid.JSX.Element\n\nexport interface DefaultRouteTypes<TProps> {\n component: (props: TProps) => any\n}\nexport interface RouteTypes<TProps> extends DefaultRouteTypes<TProps> {}\n\nexport type AsyncRouteComponent<TProps> = RouteTypes<TProps>['component'] & {\n preload?: () => Promise<void>\n}\n\nexport type RouteComponent = AsyncRouteComponent<{}>\n\nexport type ErrorRouteComponent = AsyncRouteComponent<ErrorComponentProps>\n\nexport type NotFoundRouteComponent = RouteTypes<NotFoundRouteProps>['component']\n\nexport class NotFoundRoute<\n TParentRoute extends AnyRootRoute,\n TRouterContext = AnyContext,\n TRouteContextFn = AnyContext,\n TBeforeLoadFn = AnyContext,\n TSearchValidator = undefined,\n TLoaderDeps extends Record<string, any> = {},\n TLoaderFn = undefined,\n TChildren = unknown,\n> extends Route<\n TParentRoute,\n '/404',\n '/404',\n '404',\n '404',\n TSearchValidator,\n {},\n TRouterContext,\n TRouteContextFn,\n TBeforeLoadFn,\n TLoaderDeps,\n TLoaderFn,\n TChildren\n> {\n constructor(\n options: Omit<\n RouteOptions<\n TParentRoute,\n string,\n string,\n string,\n string,\n TSearchValidator,\n {},\n TLoaderDeps,\n TLoaderFn,\n TRouterContext,\n TRouteContextFn,\n TBeforeLoadFn\n >,\n | 'caseSensitive'\n | 'parseParams'\n | 'stringifyParams'\n | 'path'\n | 'id'\n | 'params'\n >,\n ) {\n super({\n ...(options as any),\n id: '404',\n })\n }\n}\n\nexport function createRootRoute<\n TSearchValidator = undefined,\n TRouterContext = {},\n TRouteContextFn = AnyContext,\n TBeforeLoadFn = AnyContext,\n TLoaderDeps extends Record<string, any> = {},\n TLoaderFn = undefined,\n>(\n options?: RootRouteOptions<\n TSearchValidator,\n TRouterContext,\n TRouteContextFn,\n TBeforeLoadFn,\n TLoaderDeps,\n TLoaderFn\n >,\n): RootRoute<\n TSearchValidator,\n TRouterContext,\n TRouteContextFn,\n TBeforeLoadFn,\n TLoaderDeps,\n TLoaderFn,\n unknown,\n unknown\n> {\n return new RootRoute<\n TSearchValidator,\n TRouterContext,\n TRouteContextFn,\n TBeforeLoadFn,\n TLoaderDeps,\n TLoaderFn\n >(options)\n}\n"],"names":["getRouteApi","id","RouteApi","BaseRouteApi","constructor","useMatch","opts","select","from","useRouteContext","d","context","useSearch","useParams","useLoaderDeps","strict","useLoaderData","useNavigate","router","useRouter","routesById","fullPath","notFound","routeId","Link","props","_$createComponent","_$mergeProps","Route","BaseRoute","options","_self$","createRoute","createRootRouteWithContext","createRootRoute","rootRouteWithContext","RootRoute","BaseRootRoute","_self$2","createRouteMask","NotFoundRoute"],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import * as Solid from 'solid-js';
2
2
  import invariant from 'tiny-invariant';
3
3
  import warning from 'tiny-warning';
4
- import { createControlledPromise, getLocationChangeInfo, isNotFound, isRedirect, pick, rootRouteId, } from '@tanstack/router-core';
4
+ import { createControlledPromise, getLocationChangeInfo, isNotFound, isRedirect, rootRouteId, } from '@tanstack/router-core';
5
5
  import { Dynamic } from 'solid-js/web';
6
6
  import { CatchBoundary, ErrorComponent } from './CatchBoundary';
7
7
  import { useRouterState } from './useRouterState';
@@ -17,7 +17,11 @@ export const Match = (props) => {
17
17
  select: (s) => {
18
18
  const match = s.matches.find((d) => d.id === props.matchId);
19
19
  invariant(match, `Could not find match for matchId "${props.matchId}". Please file an issue!`);
20
- return pick(match, ['routeId', 'ssr', '_displayPending']);
20
+ return {
21
+ routeId: match.routeId,
22
+ ssr: match.ssr,
23
+ _displayPending: match._displayPending,
24
+ };
21
25
  },
22
26
  });
23
27
  const route = () => router.routesById[matchState().routeId];
@@ -121,8 +125,7 @@ export const MatchInner = (props) => {
121
125
  const router = useRouter();
122
126
  const matchState = useRouterState({
123
127
  select: (s) => {
124
- const matchIndex = s.matches.findIndex((d) => d.id === props.matchId);
125
- const match = s.matches[matchIndex];
128
+ const match = s.matches.find((d) => d.id === props.matchId);
126
129
  const routeId = match.routeId;
127
130
  const remountFn = router.routesById[routeId].options.remountDeps ??
128
131
  router.options.defaultRemountDeps;
@@ -136,13 +139,13 @@ export const MatchInner = (props) => {
136
139
  return {
137
140
  key,
138
141
  routeId,
139
- match: pick(match, [
140
- 'id',
141
- 'status',
142
- 'error',
143
- '_forcePending',
144
- '_displayPending',
145
- ]),
142
+ match: {
143
+ id: match.id,
144
+ status: match.status,
145
+ error: match.error,
146
+ _forcePending: match._forcePending,
147
+ _displayPending: match._displayPending,
148
+ },
146
149
  };
147
150
  },
148
151
  });
@@ -151,7 +154,8 @@ export const MatchInner = (props) => {
151
154
  const out = () => {
152
155
  const Comp = route().options.component ?? router.options.defaultComponent;
153
156
  if (Comp) {
154
- return (<Solid.Show when={matchState().match.id} keyed>
157
+ const key = matchState().key ?? matchState().match.id;
158
+ return (<Solid.Show when={key} keyed>
155
159
  <Comp />
156
160
  </Solid.Show>);
157
161
  }
@@ -160,42 +164,37 @@ export const MatchInner = (props) => {
160
164
  return (<Solid.Switch>
161
165
  <Solid.Match when={match()._displayPending}>
162
166
  {(_) => {
163
- const [displayPendingResult] = Solid.createResource(() => router.getMatch(match().id)?.displayPendingPromise);
167
+ const [displayPendingResult] = Solid.createResource(() => router.getMatch(match().id)?._nonReactive.displayPendingPromise);
164
168
  return <>{displayPendingResult()}</>;
165
169
  }}
166
170
  </Solid.Match>
167
171
  <Solid.Match when={match()._forcePending}>
168
172
  {(_) => {
169
- const [minPendingResult] = Solid.createResource(() => router.getMatch(match().id)?.minPendingPromise);
173
+ const [minPendingResult] = Solid.createResource(() => router.getMatch(match().id)?._nonReactive.minPendingPromise);
170
174
  return <>{minPendingResult()}</>;
171
175
  }}
172
176
  </Solid.Match>
173
177
  <Solid.Match when={match().status === 'pending'}>
174
178
  {(_) => {
175
179
  const pendingMinMs = route().options.pendingMinMs ?? router.options.defaultPendingMinMs;
176
- if (pendingMinMs && !router.getMatch(match().id)?.minPendingPromise) {
177
- // Create a promise that will resolve after the minPendingMs
178
- if (!router.isServer) {
179
- const minPendingPromise = createControlledPromise();
180
- Promise.resolve().then(() => {
181
- router.updateMatch(match().id, (prev) => ({
182
- ...prev,
183
- minPendingPromise,
184
- }));
185
- });
186
- setTimeout(() => {
187
- minPendingPromise.resolve();
188
- // We've handled the minPendingPromise, so we can delete it
189
- router.updateMatch(match().id, (prev) => ({
190
- ...prev,
191
- minPendingPromise: undefined,
192
- }));
193
- }, pendingMinMs);
180
+ if (pendingMinMs) {
181
+ const routerMatch = router.getMatch(match().id);
182
+ if (routerMatch && !routerMatch._nonReactive.minPendingPromise) {
183
+ // Create a promise that will resolve after the minPendingMs
184
+ if (!router.isServer) {
185
+ const minPendingPromise = createControlledPromise();
186
+ routerMatch._nonReactive.minPendingPromise = minPendingPromise;
187
+ setTimeout(() => {
188
+ minPendingPromise.resolve();
189
+ // We've handled the minPendingPromise, so we can delete it
190
+ routerMatch._nonReactive.minPendingPromise = undefined;
191
+ }, pendingMinMs);
192
+ }
194
193
  }
195
194
  }
196
195
  const [loaderResult] = Solid.createResource(async () => {
197
196
  await new Promise((r) => setTimeout(r, 0));
198
- return router.getMatch(match().id)?.loadPromise;
197
+ return router.getMatch(match().id)?._nonReactive.loadPromise;
199
198
  });
200
199
  return <>{loaderResult()}</>;
201
200
  }}
@@ -211,7 +210,7 @@ export const MatchInner = (props) => {
211
210
  invariant(isRedirect(match().error), 'Expected a redirect error');
212
211
  const [loaderResult] = Solid.createResource(async () => {
213
212
  await new Promise((r) => setTimeout(r, 0));
214
- return router.getMatch(match().id)?.loadPromise;
213
+ return router.getMatch(match().id)?._nonReactive.loadPromise;
215
214
  });
216
215
  return <>{loaderResult()}</>;
217
216
  }}
@@ -1 +1 @@
1
- {"version":3,"file":"Match.jsx","sourceRoot":"","sources":["../../src/Match.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Match.jsx","sourceRoot":"","sources":["../../src/Match.tsx"],"names":[],"mappings":"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"}
@@ -11,7 +11,7 @@ import type { LinkComponentRoute } from './link';
11
11
  declare module '@tanstack/router-core' {
12
12
  interface UpdatableRouteOptionsExtensions {
13
13
  component?: RouteComponent;
14
- errorComponent?: false | null | ErrorRouteComponent;
14
+ errorComponent?: false | null | undefined | ErrorRouteComponent;
15
15
  notFoundComponent?: NotFoundRouteComponent;
16
16
  pendingComponent?: RouteComponent;
17
17
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tanstack/solid-router",
3
- "version": "1.132.0-alpha.1",
3
+ "version": "1.132.0-alpha.2",
4
4
  "description": "Modern and scalable routing for Solid applications",
5
5
  "author": "Tanner Linsley",
6
6
  "license": "MIT",
@@ -88,8 +88,8 @@
88
88
  "isbot": "^5.1.22",
89
89
  "tiny-invariant": "^1.3.3",
90
90
  "tiny-warning": "^1.0.3",
91
- "@tanstack/history": "1.132.0-alpha.1",
92
- "@tanstack/router-core": "1.132.0-alpha.1"
91
+ "@tanstack/router-core": "1.132.0-alpha.2",
92
+ "@tanstack/history": "1.132.0-alpha.1"
93
93
  },
94
94
  "devDependencies": {
95
95
  "@solidjs/testing-library": "^0.8.10",
package/src/Match.tsx CHANGED
@@ -6,7 +6,6 @@ import {
6
6
  getLocationChangeInfo,
7
7
  isNotFound,
8
8
  isRedirect,
9
- pick,
10
9
  rootRouteId,
11
10
  } from '@tanstack/router-core'
12
11
  import { Dynamic } from 'solid-js/web'
@@ -30,7 +29,11 @@ export const Match = (props: { matchId: string }) => {
30
29
  match,
31
30
  `Could not find match for matchId "${props.matchId}". Please file an issue!`,
32
31
  )
33
- return pick(match, ['routeId', 'ssr', '_displayPending'])
32
+ return {
33
+ routeId: match.routeId,
34
+ ssr: match.ssr,
35
+ _displayPending: match._displayPending,
36
+ }
34
37
  },
35
38
  })
36
39
 
@@ -182,8 +185,7 @@ export const MatchInner = (props: { matchId: string }): any => {
182
185
 
183
186
  const matchState = useRouterState({
184
187
  select: (s) => {
185
- const matchIndex = s.matches.findIndex((d) => d.id === props.matchId)
186
- const match = s.matches[matchIndex]!
188
+ const match = s.matches.find((d) => d.id === props.matchId)!
187
189
  const routeId = match.routeId as string
188
190
 
189
191
  const remountFn =
@@ -200,13 +202,13 @@ export const MatchInner = (props: { matchId: string }): any => {
200
202
  return {
201
203
  key,
202
204
  routeId,
203
- match: pick(match, [
204
- 'id',
205
- 'status',
206
- 'error',
207
- '_forcePending',
208
- '_displayPending',
209
- ]),
205
+ match: {
206
+ id: match.id,
207
+ status: match.status,
208
+ error: match.error,
209
+ _forcePending: match._forcePending,
210
+ _displayPending: match._displayPending,
211
+ },
210
212
  }
211
213
  },
212
214
  })
@@ -218,8 +220,9 @@ export const MatchInner = (props: { matchId: string }): any => {
218
220
  const out = () => {
219
221
  const Comp = route().options.component ?? router.options.defaultComponent
220
222
  if (Comp) {
223
+ const key = matchState().key ?? matchState().match.id
221
224
  return (
222
- <Solid.Show when={matchState().match.id} keyed>
225
+ <Solid.Show when={key} keyed>
223
226
  <Comp />
224
227
  </Solid.Show>
225
228
  )
@@ -232,7 +235,8 @@ export const MatchInner = (props: { matchId: string }): any => {
232
235
  <Solid.Match when={match()._displayPending}>
233
236
  {(_) => {
234
237
  const [displayPendingResult] = Solid.createResource(
235
- () => router.getMatch(match().id)?.displayPendingPromise,
238
+ () =>
239
+ router.getMatch(match().id)?._nonReactive.displayPendingPromise,
236
240
  )
237
241
 
238
242
  return <>{displayPendingResult()}</>
@@ -241,7 +245,7 @@ export const MatchInner = (props: { matchId: string }): any => {
241
245
  <Solid.Match when={match()._forcePending}>
242
246
  {(_) => {
243
247
  const [minPendingResult] = Solid.createResource(
244
- () => router.getMatch(match().id)?.minPendingPromise,
248
+ () => router.getMatch(match().id)?._nonReactive.minPendingPromise,
245
249
  )
246
250
 
247
251
  return <>{minPendingResult()}</>
@@ -252,33 +256,27 @@ export const MatchInner = (props: { matchId: string }): any => {
252
256
  const pendingMinMs =
253
257
  route().options.pendingMinMs ?? router.options.defaultPendingMinMs
254
258
 
255
- if (pendingMinMs && !router.getMatch(match().id)?.minPendingPromise) {
256
- // Create a promise that will resolve after the minPendingMs
257
- if (!router.isServer) {
258
- const minPendingPromise = createControlledPromise<void>()
259
-
260
- Promise.resolve().then(() => {
261
- router.updateMatch(match().id, (prev) => ({
262
- ...prev,
263
- minPendingPromise,
264
- }))
265
- })
266
-
267
- setTimeout(() => {
268
- minPendingPromise.resolve()
269
-
270
- // We've handled the minPendingPromise, so we can delete it
271
- router.updateMatch(match().id, (prev) => ({
272
- ...prev,
273
- minPendingPromise: undefined,
274
- }))
275
- }, pendingMinMs)
259
+ if (pendingMinMs) {
260
+ const routerMatch = router.getMatch(match().id)
261
+ if (routerMatch && !routerMatch._nonReactive.minPendingPromise) {
262
+ // Create a promise that will resolve after the minPendingMs
263
+ if (!router.isServer) {
264
+ const minPendingPromise = createControlledPromise<void>()
265
+
266
+ routerMatch._nonReactive.minPendingPromise = minPendingPromise
267
+
268
+ setTimeout(() => {
269
+ minPendingPromise.resolve()
270
+ // We've handled the minPendingPromise, so we can delete it
271
+ routerMatch._nonReactive.minPendingPromise = undefined
272
+ }, pendingMinMs)
273
+ }
276
274
  }
277
275
  }
278
276
 
279
277
  const [loaderResult] = Solid.createResource(async () => {
280
278
  await new Promise((r) => setTimeout(r, 0))
281
- return router.getMatch(match().id)?.loadPromise
279
+ return router.getMatch(match().id)?._nonReactive.loadPromise
282
280
  })
283
281
 
284
282
  return <>{loaderResult()}</>
@@ -297,7 +295,7 @@ export const MatchInner = (props: { matchId: string }): any => {
297
295
 
298
296
  const [loaderResult] = Solid.createResource(async () => {
299
297
  await new Promise((r) => setTimeout(r, 0))
300
- return router.getMatch(match().id)?.loadPromise
298
+ return router.getMatch(match().id)?._nonReactive.loadPromise
301
299
  })
302
300
 
303
301
  return <>{loaderResult()}</>
package/src/route.tsx CHANGED
@@ -49,7 +49,7 @@ import type { LinkComponentRoute } from './link'
49
49
  declare module '@tanstack/router-core' {
50
50
  export interface UpdatableRouteOptionsExtensions {
51
51
  component?: RouteComponent
52
- errorComponent?: false | null | ErrorRouteComponent
52
+ errorComponent?: false | null | undefined | ErrorRouteComponent
53
53
  notFoundComponent?: NotFoundRouteComponent
54
54
  pendingComponent?: RouteComponent
55
55
  }