diff --git a/.changeset/chatty-weeks-look.md b/.changeset/chatty-weeks-look.md new file mode 100644 index 000000000..a8ca57755 --- /dev/null +++ b/.changeset/chatty-weeks-look.md @@ -0,0 +1,6 @@ +--- +"@solidjs/router": patch +--- + +- Improve route matching fallback +- Optimize imports diff --git a/src/routers/components.tsx b/src/routers/components.tsx index eceb4b76b..15cdaaaf9 100644 --- a/src/routers/components.tsx +++ b/src/routers/components.tsx @@ -1,36 +1,27 @@ /*@refresh skip*/ -import type { Component, JSX, Owner } from "solid-js"; -import { type RequestEvent, getRequestEvent, isServer } from "solid-js/web"; +import type {Component, JSX, Owner} from "solid-js"; +import {children, createMemo, createRoot, getOwner, mergeProps, on, Show, untrack} from "solid-js"; +import {getRequestEvent, isServer, type RequestEvent} from "solid-js/web"; import { - children, - createMemo, - createRoot, - getOwner, - mergeProps, - on, - Show, - untrack -} from "solid-js"; -import { - createBranches, - createRouteContext, - createRouterContext, - getIntent, - getRouteMatches, - RouteContextObj, - RouterContextObj, - setInPreloadFn + createBranches, + createRouteContext, + createRouterContext, + getIntent, + getRouteMatches, + RouteContextObj, + RouterContextObj, + setInPreloadFn } from "../routing.js"; import type { - MatchFilters, - RouteContext, - RouteDefinition, - RouterIntegration, - RouterContext, - Branch, - RouteSectionProps, - RoutePreloadFunc + Branch, + MatchFilters, + RouteContext, + RouteDefinition, + RoutePreloadFunc, + RouterContext, + RouterIntegration, + RouteSectionProps } from "../types.js"; export type BaseRouterProps = { @@ -142,7 +133,10 @@ function Routes(props: { routerState: RouterContext; branches: Branch[] }) { props.routerState, next[i - 1] || props.routerState.base, createOutlet(() => routeStates()[i + 1]), - () => props.routerState.matches()[i] + () => { + const routeMatches = props.routerState.matches(); + return routeMatches[i] ?? routeMatches[0]; + } ); }); }