Skip to content

Release 7.15.1#15038

Merged
brophdawg11 merged 1 commit into
releasefrom
release-pr
May 14, 2026
Merged

Release 7.15.1#15038
brophdawg11 merged 1 commit into
releasefrom
release-pr

Conversation

@ryanflorence
Copy link
Copy Markdown
Member

@ryanflorence ryanflorence commented May 13, 2026

This PR is managed by the release workflow. Do not edit it manually.

Releases

Package Version
react-router 7.15.07.15.1
react-router-dom 7.15.07.15.1
@react-router/architect 7.15.07.15.1
@react-router/cloudflare 7.15.07.15.1
@react-router/dev 7.15.07.15.1
@react-router/express 7.15.07.15.1
@react-router/fs-routes 7.15.07.15.1
@react-router/node 7.15.07.15.1
@react-router/remix-routes-option-adapter 7.15.07.15.1
@react-router/serve 7.15.07.15.1
create-react-router 7.15.07.15.1

Changelogs

react-router v7.15.1

Patch Changes

  • Update router to operate on fetcher Maps in an immutable manner to avoid delayed React renders from potentially reading an updated but not yet committed Map. This could result in brief flickers in some fetcher-driven optimistic UI scenarios. (#15028)
  • Fix serverLoader() returning stale SSR data when a client navigation aborts pending hydration before the hydration clientLoader resolves (#15022)
  • Fix RouterProvider onError callback not being called for synchronous initial loader errors in SPA mode (#15039) (#14942)
  • Memoize useFetchers to return a stable identity and only change if fetchers changed (#15028)
  • Internal refactor to consolidate mutation request detection through shared utility (#15033)

Unstable Changes

⚠️ Unstable features are not recommended for production use

  • Add a new unstable_useRouterState() hook that consolidates access to active and pending router states (RFC: Consolidate Router State Access #12358) (#15017)

    • Data/Framework/RSC only — throws when used without a data router

    • This should allow you to consolidate usages of the following hooks which will likely be deprecated and removed in a future major version

      • useLocation
      • useSearchParams
      • useParams
      • useMatches
      • useNavigationType
      • useNavigation
      let { active, pending } = unstable_useRouterState();
      
      // Active is always populated with the current location
      active.location; // replaces `useLocation()`
      active.searchParams; // replaces `useSearchParams()[0]`
      active.params; // replaces `useParams()`
      active.matches; // replaces `useMatches()`
      active.type; // replaces `useNavigationType()`
      
      // Pending is only populated during a navigation
      pending.location; // replaces `useNavigation().location`
      pending.searchParams; // equivalent to `new URLSearchParams(useNavigation().search)`
      pending.params; // Not directly accessible today
      pending.matches; // Not directly accessible today
      pending.type; // Not directly accessible today
      pending.state; // replaces `useNavigation().state`
      pending.formMethod; // replaces useNavigation().formMethod
      pending.formAction; // replaces useNavigation().formAction
      pending.formEncType; // replaces useNavigation().formEncType
      pending.formData; // replaces useNavigation().formData
      pending.json; // replaces useNavigation().json
      pending.text; // replaces useNavigation().text

react-router-dom v7.15.1

Patch Changes

@react-router/architect v7.15.1

Patch Changes

@react-router/cloudflare v7.15.1

Patch Changes

@react-router/dev v7.15.1

Patch Changes

  • Fix basename conflicting with app directory name when Vite base is set (#15027)

    When the Vite base config and React Router basename both match the
    app directory name (e.g. base: "/app/", basename: "/app/"), Vite would
    strip the base prefix from server-build virtual module import paths, causing
    "Failed to load url /root.tsx" errors. The fix uses /@fs/ absolute paths
    for those imports to bypass Vite's base-stripping logic.

  • Updated dependencies:

@react-router/express v7.15.1

Patch Changes

@react-router/fs-routes v7.15.1

Patch Changes

@react-router/node v7.15.1

Patch Changes

@react-router/remix-routes-option-adapter v7.15.1

Patch Changes

@react-router/serve v7.15.1

Patch Changes

create-react-router v7.15.1

Patch Changes

  • No changes

@github-actions
Copy link
Copy Markdown
Contributor

Preview Build Available

Preview builds have been created for this PR. You can install react-router using:

pnpm install "remix-run/react-router#preview/pr-15038&path:packages/react-router"

And/or install other packages via:

pnpm install "remix-run/react-router#preview/pr-15038&path:packages/react-router-dev"
pnpm install "remix-run/react-router#preview/pr-15038&path:packages/react-router-express"
pnpm install "remix-run/react-router#preview/pr-15038&path:packages/react-router-node"
pnpm install "remix-run/react-router#preview/pr-15038&path:packages/react-router-serve"

These preview builds will be updated automatically as you push new commits.

@brophdawg11 brophdawg11 merged commit 587d08f into release May 14, 2026
9 of 10 checks passed
@brophdawg11 brophdawg11 deleted the release-pr branch May 14, 2026 14:39
@github-actions
Copy link
Copy Markdown
Contributor

The preview branch preview/pr-15038 has been deleted now that this PR is merged/closed.

brophdawg11 added a commit to remix-run/react-router-website that referenced this pull request May 15, 2026
* Migrate to unstable_useRouterState hook

Replaces useLocation/useParams/useNavigation calls with the consolidated
unstable_useRouterState hook from remix-run/react-router#15038. useMatches
calls that read loaderData are left in place since the new hook's matches
omit data fields.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* Update React Router to 7.15.1

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Rename useNavigation hook to useNavState

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

---------

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants