Skip to content

Update dependency @solidjs/router to v1 - #9

Open
renovate[bot] wants to merge 1 commit into
mainfrom
renovate/solidjs-router-1.x
Open

Update dependency @solidjs/router to v1#9
renovate[bot] wants to merge 1 commit into
mainfrom
renovate/solidjs-router-1.x

Conversation

@renovate

@renovate renovate Bot commented Jul 29, 2026

Copy link
Copy Markdown
Contributor

This PR contains the following updates:

Package Change Age Confidence
@solidjs/router ^0.15.3^1.0.0 age confidence

Release Notes

solidjs/solid-router (@​solidjs/router)

v1.0.0

Major Changes
  • Declare the router stable as 1.0.0. This is a version realignment, not a breaking change: the code is functionally identical to the 0.16 line, which has held API-stable for years, and ^1.0.0 finally gets normal caret semantics instead of the pinned-minor treatment resolvers give 0.x releases. It also aligns major numbers across the ecosystem — router 1.x pairs with Solid 1.x (and SolidStart 2.0), while the in-progress Solid 2 router moves from 1.0.0-next.* to 2.0.0-next.* prereleases under the next tag.
Patch Changes
  • 1211a89: Restore scroll with a single scroll once routing settles, dropping the ResizeObserver that re-asserted the offset while the document was still growing (<Router scrollRestoration>, added in 0.16.3). Settling after the navigation commits is what makes the offset reachable, and it is the strategy every peer router ships (SvelteKit, TanStack Router, React Router, Next); TanStack's equivalent MutationObserver sits commented out in their source. The chase carried real downside for a case none of them try to cover: with no bound, a target that is never reachable (a list that is genuinely shorter now) left the observer connected for the life of the page, re-clamping the viewport to the bottom on every subsequent resize, and scroll-induced layout changes can feed it back into itself. It was also untestable in jsdom, which has no ResizeObserver, so the branch had no coverage. Content committing after the navigation settles — an image without reserved space, a boundary below the fold — now keeps whatever offset the document can hold.

v0.16.3

Compare Source

Patch Changes
  • 31501fd: Add opt-in explicit scroll restoration for back/forward navigation: <Router scrollRestoration> (#​577). The browser's native same-document heuristic loses the saved offset when the destination route forces a layout while the document is still short — any component that measures itself on mount is enough to trigger it. When enabled the router sets history.scrollRestoration = "manual", captures positions continuously keyed by the history entry depth it already tracks, persists them across reloads, and restores after the navigation settles — retrying as the document grows if the target offset isn't reachable yet, cancelled by the first user scroll. Off by default on 0.x; no behavior changes unless enabled.

v0.16.2

Patch Changes
  • 676db85: fix #​451 - dispose per-route roots when the route tree unmounts; leaked roots stayed subscribed to route matches and crashed with TypeError: ... (evaluating 'match().path') on a later navigation (e.g. when a <Show> in the root component hid the outlet during login/logout flows)

  • cae1d15: Fix a batch of long-standing bugs:

    • useSubmission().retry was always a no-op due to an operator-precedence bug (#​504)
    • disposing an older owner no longer unregisters a newer action bound to the same URL, which caused forms to fall through to native submission after revalidation (#​542)
    • useBeforeLeave listeners now observe defaultPrevented set by other listeners (#​530)
    • <A> active state now ignores trailing slashes on href (#​532)
    • useCurrentMatches returns a copy so user mutation can't corrupt router state (#​516)
    • static path segments no longer percent-encode RFC 3986 pchar characters (+, @, :, $, &, ,, ;, =), so routes like /+foo or /@user match the browser's raw pathname (#​559, #​509)
    • consecutive synchronous setSearchParams calls now compose: the merge applies to the in-flight navigation target instead of the stale committed location (#​547)
  • e9acd69: fix #​454 - default RouteDefinition's data generic to any so typed components and preload functions are assignable in annotated configs like const routes: RouteDefinition[], where no inference site for the generic exists

  • 9d80d4e: Paths with empty interior segments (doubled slashes, e.g. //dash or /foo//bar) no longer match routes and now render the not-found state instead of silently matching their collapsed form (#​567). A single trailing slash is still tolerated. Doubled leading slashes are also no longer normalized away by the browser integration and parse correctly instead of being treated as protocol-relative URLs.

  • b308c21: fix #​497 - revalidate now forces the cache miss synchronously instead of deferring it into the transition microtask, so a same-tick refetch() after an un-awaited revalidate() refetches fresh data

  • e9acd69: fix #​347 - accept VoidComponent pages as route components; component now takes a RouteSectionComponent union so components that don't declare children type-check, while components requiring props the router doesn't pass are still rejected

v0.16.1

Patch Changes
  • e847f96: Fix the published package contents so dist no longer includes mirrored src, test, or co-located spec files.

    Also move the data tests under test/ and align the test TypeScript config with that layout so test:types continues to pass cleanly.

v0.16.0

Minor Changes
Patch Changes
  • 63940c5: Use name in action and createAsync

    action() and createAsync() were not respecting user defined name.
    Moreover, action was not applying the hashed name and only naming the action "mutate".

  • f9b6dc6: Make useHref return a string with string param


Configuration

📅 Schedule: (UTC)

  • Branch creation
    • At any time (no schedule defined)
  • Automerge
    • At any time (no schedule defined)

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@vercel

vercel Bot commented Jul 29, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
website Error Error Sep 7, 2026 9:29pm UTC

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants