diff --git a/.changeset/big-trainers-cough.md b/.changeset/big-trainers-cough.md deleted file mode 100644 index 7cb00838e7..0000000000 --- a/.changeset/big-trainers-cough.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"react-router": patch ---- - -Fix regression and properly decode paths inside `useMatch` so matches/params reflect decoded params diff --git a/.changeset/clever-emus-leave.md b/.changeset/clever-emus-leave.md deleted file mode 100644 index f9a432c452..0000000000 --- a/.changeset/clever-emus-leave.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@remix-run/router": patch ---- - -Fix bubbling of errors thrown from `unstable_patchRoutesOnMiss` diff --git a/.changeset/gold-snakes-build.md b/.changeset/gold-snakes-build.md deleted file mode 100644 index 884a0e96c3..0000000000 --- a/.changeset/gold-snakes-build.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -"@remix-run/router": minor ---- - -Stabilize `future.unstable_skipActionErrorRevalidation` as `future.v7_skipActionErrorRevalidation` - -- When this flag is enabled, actions will not automatically trigger a revalidation if they return/throw a `Response` with a `4xx`/`5xx` status code -- You may still opt-into revalidation via `shouldRevalidate` -- This also changes `shouldRevalidate`'s `unstable_actionStatus` parameter to `actionStatus` diff --git a/.changeset/wicked-ducks-heal.md b/.changeset/wicked-ducks-heal.md deleted file mode 100644 index cf8a4ff118..0000000000 --- a/.changeset/wicked-ducks-heal.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@remix-run/router": patch ---- - -Fix fog of war hydration in SSR apps that matched a splat route on the server diff --git a/CHANGELOG.md b/CHANGELOG.md index a22e844987..a07ceffd24 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,163 +13,168 @@ We manage release notes in this file instead of the paginated Github Releases Pa Table of Contents - [React Router Releases](#react-router-releases) - - [v6.24.1](#v6241) - - [Patch Changes](#patch-changes) - - [v6.24.0](#v6240) + - [v6.25.0](#v6250) - [What's Changed](#whats-changed) - - [Lazy Route Discovery (a.k.a. "Fog of War")](#lazy-route-discovery-aka-fog-of-war) + - [Stabilized `v7_skipActionErrorRevalidation`](#stabilized-v7_skipactionerrorrevalidation) - [Minor Changes](#minor-changes) + - [Patch Changes](#patch-changes) + - [v6.24.1](#v6241) - [Patch Changes](#patch-changes-1) - - [v6.23.1](#v6231) + - [v6.24.0](#v6240) + - [What's Changed](#whats-changed-1) + - [Lazy Route Discovery (a.k.a. "Fog of War")](#lazy-route-discovery-aka-fog-of-war) + - [Minor Changes](#minor-changes-1) - [Patch Changes](#patch-changes-2) + - [v6.23.1](#v6231) + - [Patch Changes](#patch-changes-3) - [v6.23.0](#v6230) - - [What's Changed](#whats-changed-1) + - [What's Changed](#whats-changed-2) - [Data Strategy (unstable)](#data-strategy-unstable) - [Skip Action Error Revalidation (unstable)](#skip-action-error-revalidation-unstable) - - [Minor Changes](#minor-changes-1) + - [Minor Changes](#minor-changes-2) - [v6.22.3](#v6223) - - [Patch Changes](#patch-changes-3) - - [v6.22.2](#v6222) - [Patch Changes](#patch-changes-4) - - [v6.22.1](#v6221) + - [v6.22.2](#v6222) - [Patch Changes](#patch-changes-5) + - [v6.22.1](#v6221) + - [Patch Changes](#patch-changes-6) - [v6.22.0](#v6220) - - [What's Changed](#whats-changed-2) + - [What's Changed](#whats-changed-3) - [Core Web Vitals Technology Report Flag](#core-web-vitals-technology-report-flag) - - [Minor Changes](#minor-changes-2) - - [Patch Changes](#patch-changes-6) - - [v6.21.3](#v6213) + - [Minor Changes](#minor-changes-3) - [Patch Changes](#patch-changes-7) - - [v6.21.2](#v6212) + - [v6.21.3](#v6213) - [Patch Changes](#patch-changes-8) - - [v6.21.1](#v6211) + - [v6.21.2](#v6212) - [Patch Changes](#patch-changes-9) + - [v6.21.1](#v6211) + - [Patch Changes](#patch-changes-10) - [v6.21.0](#v6210) - - [What's Changed](#whats-changed-3) + - [What's Changed](#whats-changed-4) - [`future.v7_relativeSplatPath`](#futurev7_relativesplatpath) - [Partial Hydration](#partial-hydration) - - [Minor Changes](#minor-changes-3) - - [Patch Changes](#patch-changes-10) - - [v6.20.1](#v6201) - - [Patch Changes](#patch-changes-11) - - [v6.20.0](#v6200) - [Minor Changes](#minor-changes-4) + - [Patch Changes](#patch-changes-11) + - [v6.20.1](#v6201) - [Patch Changes](#patch-changes-12) - - [v6.19.0](#v6190) - - [What's Changed](#whats-changed-4) - - [`unstable_flushSync` API](#unstable_flushsync-api) + - [v6.20.0](#v6200) - [Minor Changes](#minor-changes-5) - [Patch Changes](#patch-changes-13) - - [v6.18.0](#v6180) + - [v6.19.0](#v6190) - [What's Changed](#whats-changed-5) - - [New Fetcher APIs](#new-fetcher-apis) - - [Persistence Future Flag (`future.v7_fetcherPersist`)](#persistence-future-flag-futurev7_fetcherpersist) + - [`unstable_flushSync` API](#unstable_flushsync-api) - [Minor Changes](#minor-changes-6) - [Patch Changes](#patch-changes-14) - - [v6.17.0](#v6170) + - [v6.18.0](#v6180) - [What's Changed](#whats-changed-6) - - [View Transitions 🚀](#view-transitions-) + - [New Fetcher APIs](#new-fetcher-apis) + - [Persistence Future Flag (`future.v7_fetcherPersist`)](#persistence-future-flag-futurev7_fetcherpersist) - [Minor Changes](#minor-changes-7) - [Patch Changes](#patch-changes-15) - - [v6.16.0](#v6160) + - [v6.17.0](#v6170) + - [What's Changed](#whats-changed-7) + - [View Transitions 🚀](#view-transitions-) - [Minor Changes](#minor-changes-8) - [Patch Changes](#patch-changes-16) - - [v6.15.0](#v6150) + - [v6.16.0](#v6160) - [Minor Changes](#minor-changes-9) - [Patch Changes](#patch-changes-17) - - [v6.14.2](#v6142) + - [v6.15.0](#v6150) + - [Minor Changes](#minor-changes-10) - [Patch Changes](#patch-changes-18) - - [v6.14.1](#v6141) + - [v6.14.2](#v6142) - [Patch Changes](#patch-changes-19) - - [v6.14.0](#v6140) - - [What's Changed](#whats-changed-7) - - [JSON/Text Submissions](#jsontext-submissions) - - [Minor Changes](#minor-changes-10) + - [v6.14.1](#v6141) - [Patch Changes](#patch-changes-20) - - [v6.13.0](#v6130) + - [v6.14.0](#v6140) - [What's Changed](#whats-changed-8) - - [`future.v7_startTransition`](#futurev7_starttransition) + - [JSON/Text Submissions](#jsontext-submissions) - [Minor Changes](#minor-changes-11) - [Patch Changes](#patch-changes-21) - - [v6.12.1](#v6121) - - [Patch Changes](#patch-changes-22) - - [v6.12.0](#v6120) + - [v6.13.0](#v6130) - [What's Changed](#whats-changed-9) - - [`React.startTransition` support](#reactstarttransition-support) + - [`future.v7_startTransition`](#futurev7_starttransition) - [Minor Changes](#minor-changes-12) + - [Patch Changes](#patch-changes-22) + - [v6.12.1](#v6121) - [Patch Changes](#patch-changes-23) - - [v6.11.2](#v6112) + - [v6.12.0](#v6120) + - [What's Changed](#whats-changed-10) + - [`React.startTransition` support](#reactstarttransition-support) + - [Minor Changes](#minor-changes-13) - [Patch Changes](#patch-changes-24) - - [v6.11.1](#v6111) + - [v6.11.2](#v6112) - [Patch Changes](#patch-changes-25) - - [v6.11.0](#v6110) - - [Minor Changes](#minor-changes-13) + - [v6.11.1](#v6111) - [Patch Changes](#patch-changes-26) - - [v6.10.0](#v6100) - - [What's Changed](#whats-changed-10) + - [v6.11.0](#v6110) - [Minor Changes](#minor-changes-14) - - [`future.v7_normalizeFormMethod`](#futurev7_normalizeformmethod) - [Patch Changes](#patch-changes-27) - - [v6.9.0](#v690) + - [v6.10.0](#v6100) - [What's Changed](#whats-changed-11) - - [`Component`/`ErrorBoundary` route properties](#componenterrorboundary-route-properties) - - [Introducing Lazy Route Modules](#introducing-lazy-route-modules) - [Minor Changes](#minor-changes-15) + - [`future.v7_normalizeFormMethod`](#futurev7_normalizeformmethod) - [Patch Changes](#patch-changes-28) - - [v6.8.2](#v682) + - [v6.9.0](#v690) + - [What's Changed](#whats-changed-12) + - [`Component`/`ErrorBoundary` route properties](#componenterrorboundary-route-properties) + - [Introducing Lazy Route Modules](#introducing-lazy-route-modules) + - [Minor Changes](#minor-changes-16) - [Patch Changes](#patch-changes-29) - - [v6.8.1](#v681) + - [v6.8.2](#v682) - [Patch Changes](#patch-changes-30) - - [v6.8.0](#v680) - - [Minor Changes](#minor-changes-16) + - [v6.8.1](#v681) - [Patch Changes](#patch-changes-31) - - [v6.7.0](#v670) + - [v6.8.0](#v680) - [Minor Changes](#minor-changes-17) - [Patch Changes](#patch-changes-32) - - [v6.6.2](#v662) + - [v6.7.0](#v670) + - [Minor Changes](#minor-changes-18) - [Patch Changes](#patch-changes-33) - - [v6.6.1](#v661) + - [v6.6.2](#v662) - [Patch Changes](#patch-changes-34) - - [v6.6.0](#v660) - - [What's Changed](#whats-changed-12) - - [Minor Changes](#minor-changes-18) + - [v6.6.1](#v661) - [Patch Changes](#patch-changes-35) - - [v6.5.0](#v650) + - [v6.6.0](#v660) - [What's Changed](#whats-changed-13) - [Minor Changes](#minor-changes-19) - [Patch Changes](#patch-changes-36) - - [v6.4.5](#v645) + - [v6.5.0](#v650) + - [What's Changed](#whats-changed-14) + - [Minor Changes](#minor-changes-20) - [Patch Changes](#patch-changes-37) - - [v6.4.4](#v644) + - [v6.4.5](#v645) - [Patch Changes](#patch-changes-38) - - [v6.4.3](#v643) + - [v6.4.4](#v644) - [Patch Changes](#patch-changes-39) - - [v6.4.2](#v642) + - [v6.4.3](#v643) - [Patch Changes](#patch-changes-40) - - [v6.4.1](#v641) + - [v6.4.2](#v642) - [Patch Changes](#patch-changes-41) + - [v6.4.1](#v641) + - [Patch Changes](#patch-changes-42) - [v6.4.0](#v640) - - [What's Changed](#whats-changed-14) + - [What's Changed](#whats-changed-15) - [Remix Data APIs](#remix-data-apis) - - [Patch Changes](#patch-changes-42) + - [Patch Changes](#patch-changes-43) - [v6.3.0](#v630) - - [Minor Changes](#minor-changes-20) + - [Minor Changes](#minor-changes-21) - [v6.2.2](#v622) - - [Patch Changes](#patch-changes-43) - - [v6.2.1](#v621) - [Patch Changes](#patch-changes-44) - - [v6.2.0](#v620) - - [Minor Changes](#minor-changes-21) + - [v6.2.1](#v621) - [Patch Changes](#patch-changes-45) - - [v6.1.1](#v611) - - [Patch Changes](#patch-changes-46) - - [v6.1.0](#v610) + - [v6.2.0](#v620) - [Minor Changes](#minor-changes-22) + - [Patch Changes](#patch-changes-46) + - [v6.1.1](#v611) - [Patch Changes](#patch-changes-47) - - [v6.0.2](#v602) + - [v6.1.0](#v610) + - [Minor Changes](#minor-changes-23) - [Patch Changes](#patch-changes-48) - - [v6.0.1](#v601) + - [v6.0.2](#v602) - [Patch Changes](#patch-changes-49) + - [v6.0.1](#v601) + - [Patch Changes](#patch-changes-50) - [v6.0.0](#v600) @@ -193,6 +198,31 @@ Date: YYYY-MM-DD **Full Changelog**: [`v6.X.Y...v6.X.Y`](https://github.com/remix-run/react-router/compare/react-router@6.X.Y...react-router@6.X.Y) --> +## v6.25.0 + +Date: 2024-07-16 + +### What's Changed + +#### Stabilized `v7_skipActionErrorRevalidation` + +This release stabilizes the `future.unstable_skipActionErrorRevalidation` flag into [`future.v7_skipActionErrorRevalidation`](https://reactrouter.com/upgrading/future#v7_skipactionstatusrevalidation) in preparation for the upcoming React Router v7 release. + +- When this flag is enabled, actions that return/throw a `4xx/5xx` `Response` will not trigger a revalidation by default +- This also stabilizes `shouldRevalidate`'s `unstable_actionStatus` parameter to `actionStatus` + +### Minor Changes + +- Stabilize `future.unstable_skipActionErrorRevalidation` as `future.v7_skipActionErrorRevalidation` ([#11769](https://github.com/remix-run/react-router/pull/11769)) + +### Patch Changes + +- Fix regression and properly decode paths inside `useMatch` so matches/params reflect decoded params ([#11789](https://github.com/remix-run/react-router/pull/11789)) +- Fix bubbling of errors thrown from `unstable_patchRoutesOnMiss` ([#11786](https://github.com/remix-run/react-router/pull/11786)) +- Fix hydration in SSR apps using `unstable_patchRoutesOnMiss` that matched a splat route on the server ([#11790](https://github.com/remix-run/react-router/pull/11790)) + +**Full Changelog**: [`v6.24.1...v6.25.0`](https://github.com/remix-run/react-router/compare/react-router@6.24.1...react-router@6.25.0) + ## v6.24.1 Date: 2024-07-03 diff --git a/DEVELOPMENT.md b/DEVELOPMENT.md index 36606785a7..f534e13be8 100644 --- a/DEVELOPMENT.md +++ b/DEVELOPMENT.md @@ -6,64 +6,71 @@ New releases should be created from release branches originating from the `dev` - Make sure you've pulled all the changes from GitHub for both `dev` and `main` branches. - Check out the `dev` branch. -- Create a new release branch with the `release-` prefix (eg, `git checkout -b release-next`). - - **IMPORTANT:** The `release-` prefix is important, as this is what triggers our GitHub CI workflow that will ultimately publish the release. - - Branches named `release-experimental` will not trigger our release workflow, as experimental releases handled differently (outlined below). +- Create a new `release-next` branch (eg, `git checkout -b release-next`). + - Technically, any `release-*next*` branch name will work as this is what triggers our GitHub CI workflow that will ultimately publish the release - but we just always use `release-next` - Merge `main` into the release branch. Changesets will do most of the heavy lifting for our releases. When changes are made to the codebase, an accompanying changeset file should be included to document the change. Those files will dictate how Changesets will version our packages and what shows up in the changelogs. ### Starting a new pre-release -- Ensure you are on the new `release-*` branch. +- Ensure you are on the new `release-next` branch. - Enter Changesets pre-release mode using the `pre` tag: `pnpm changeset pre enter pre`. -- Commit the change and push the `release-*` branch to GitHub. +- Commit the change and push the `release-next` branch to GitHub. - Wait for the release workflow to finish. The Changesets action in the workflow will open a PR that will increment all versions and generate the changelogs. -- Review the updated `CHANGELOG` files and make any adjustments necessary, then merge the PR into the `release-*` branch. +- Check out the PR branch created by changesets locally +- Review the updated `CHANGELOG.md` files in the PR locally and make any adjustments necessary, then merge the PR into the `release-next` branch. - `find packages -name 'CHANGELOG.md' -mindepth 2 -maxdepth 2 -exec code {} \;` -- Once the PR is merged, the release workflow will publish the updated packages to npm. +- Once the changesets files are in good shape, merge the PR to `release-next` +- Once the PR is merged, the release workflow will publish the updated `X.Y.Z-pre.*` packages to npm. - At this point, you can begin crafting the release notes for the eventual stable release in the root `CHANGELOG.md` file in the repo - Copy the template for a new release and update the version numbers and links accordingly - Copy the relevant changelog entries from all packages into the release notes and adjust accordingly - - Commit these changes directly to the `release-*` branch - they will not trigger a new prerelease since they do not include a changeset + - Commit these changes directly to the `release-next` branch - they will not trigger a new prerelease since they do not include a changeset ### Iterating a pre-release You may need to make changes to a pre-release prior to publishing a final stable release. To do so: -- Make whatever changes you need. +- Branch off of `release-next` and make whatever changes you need - Create a new changeset: `pnpm changeset`. - **IMPORTANT:** This is required even if you ultimately don't want to include these changes in the logs. Remember, changelogs can be edited prior to publishing, but the Changeset version script needs to see new changesets in order to create a new version. -- Commit the changesets and push the `release-*` branch to GitHub. +- Push your branch to GitHub and PR it to `release-next`. +- Once reviewed/approved, merge the PR to the `release-next` branch. - Wait for the release workflow to finish and the Changesets action to open its PR that will increment all versions. -- Review the PR, make any adjustments necessary, and merge it into the `release-*` branch. -- Once the PR is merged, the release workflow will publish the updated packages to npm. +- Review the PR, make any adjustments necessary, and merge it into the `release-next` branch. +- Once the PR is merged, the release workflow will publish the updated `X.Y.Z-pre.*` packages to npm. - Make sure you copy over the new changeset contents into stable release notes in the root `CHANGELOG.md` file in the repo ### Publishing the stable release -- Exit Changesets pre-release mode: `pnpm changeset pre exit`. -- Commit the edited pre-release file along with any unpublished changesets, and push the `release-*` branch to GitHub. +- Exit Changesets pre-release mode in the `release-next` branch: `pnpm changeset pre exit`. +- Commit the edited pre-release file along with any unpublished changesets, and push the `release-next` branch to GitHub. - Wait for the release workflow to finish. The Changesets action in the workflow will open a PR that will increment all versions and generate the changelogs for the stable release. -- Review the updated `CHANGELOG` files and make any adjustments necessary. +- Review the updated `CHANGELOG` files in the PR and make any adjustments necessary. - `find packages -name 'CHANGELOG.md' -mindepth 2 -maxdepth 2 -exec code {} \;` - Our automated release process should have removed prerelease entries - Finalize the release notes - This should already be in pretty good shape in the root `CHANGELOG.md` file in the repo - Do a quick double check that all iterated prerelease changesets got copied over -- Merge the PR into the `release-*` branch. +- Merge the PR into the `release-next` branch. - Once the PR is merged, the release workflow will publish the updated packages to npm. - Once the release is published: - - Pull the latest `release-*` branch containing the PR you just merged - - Merge the `release-*` branch into `main` **using a non-fast-forward merge** and push it up to GitHub - - `git checkout main; git merge --no-ff release-next` - - Merge the `release-*` branch into `dev` **using a non-fast-forward merge** and push it up to GitHub - - `git checkout dev; git merge --no-ff release-next` + - Pull the latest `release-next` branch containing the PR you just merged + - Merge the `release-next` branch into `main` **using a non-fast-forward merge** and push it up to GitHub + - `git checkout main` + - `git merge --no-ff release-next` + - `git push origin main` + - Merge the `release-next` branch into `dev` **using a non-fast-forward merge** and push it up to GitHub + - `git checkout dev` + - `git merge --no-ff release-next` + - `git push origin dev` - Convert the `react-router@6.x.y` tag to a Release on GitHub with the name `v6.x.y` and add a deep-link to the release heading in `CHANGELOG.md` + - Delete the `release-next` branch locally and on GitHub ### Hotfix releases -Hotfix releases follow the same process as standard releases above, but the `release-*` branch should be branched off latest `main` instead of `dev`. Once the stable hotfix is published, the `release-*` branch should be merged back into both `main` and `dev` just like a normal release. +Hotfix releases follow the same process as standard releases above, but the `release-next` branch should be branched off latest `main` instead of `dev`. Once the stable hotfix is published, the `release-next` branch should be merged back into both `main` and `dev` just like a normal release. ### Experimental releases diff --git a/docs/routers/create-browser-router.md b/docs/routers/create-browser-router.md index 0183d1d12f..07cb871600 100644 --- a/docs/routers/create-browser-router.md +++ b/docs/routers/create-browser-router.md @@ -478,24 +478,16 @@ let router = createBrowserRouter( path: "/", Component: Home, }, - { - id: "dashboard", - path: "/dashboard", - }, - { - id: "account", - path: "/account", - }, ], { async unstable_patchRoutesOnMiss({ path, patch }) { if (path.startsWith("/dashboard")) { let children = await import("./dashboard"); - patch("dashboard", children); + patch(null, children); } if (path.startsWith("/account")) { let children = await import("./account"); - patch("account", children); + patch(null, children); } }, } @@ -507,32 +499,52 @@ let router = createBrowserRouter( If you don't wish to perform your own pseudo-matching, you can leverage the partial `matches` array and the `handle` field on a route to keep the children definitions co-located: ```jsx -let router = createBrowserRouter([ - { - path: "/", - Component: Home, - }, - { - path: "/dashboard", - handle: { - lazyChildren: () => import('./dashboard'); - } - }, +let router = createBrowserRouter( + [ + { + path: "/", + Component: Home, + }, + { + path: "/dashboard", + children: [ + { + // If we want to include /dashboard in the critical routes, we need to + // also include it's index route since patchRoutesOnMiss will not be + // called on a navigation to `/dashboard` because it will have successfully + // matched the `/dashboard` parent route + index: true, + // ... + }, + ], + handle: { + lazyChildren: () => import("./dashboard"), + }, + }, + { + path: "/account", + children: [ + { + index: true, + // ... + }, + ], + handle: { + lazyChildren: () => import("./account"), + }, + }, + ], { - path: "/account", - handle: { - lazyChildren: () => import('./account'); - } - }, -], { - async unstable_patchRoutesOnMiss({ matches, patch }) { - let leafRoute = matches[matches.length - 1]?.route; - if (leafRoute?.handle?.lazyChildren) { - let children = await leafRoute.handle.lazyChildren(); - patch(leafRoute.id, children); - } + async unstable_patchRoutesOnMiss({ matches, patch }) { + let leafRoute = matches[matches.length - 1]?.route; + if (leafRoute?.handle?.lazyChildren) { + let children = + await leafRoute.handle.lazyChildren(); + patch(leafRoute.id, children); + } + }, } -}); +); ``` ## `opts.window` diff --git a/packages/react-router-dom-v5-compat/CHANGELOG.md b/packages/react-router-dom-v5-compat/CHANGELOG.md index 26289f34f5..c656fb2bdd 100644 --- a/packages/react-router-dom-v5-compat/CHANGELOG.md +++ b/packages/react-router-dom-v5-compat/CHANGELOG.md @@ -1,5 +1,14 @@ # `react-router-dom-v5-compat` +## 6.25.0 + +### Patch Changes + +- Updated dependencies: + - `react-router@6.25.0` + - `@remix-run/router@1.18.0` + - `react-router-dom@6.25.0` + ## 6.24.1 ### Patch Changes diff --git a/packages/react-router-dom-v5-compat/package.json b/packages/react-router-dom-v5-compat/package.json index 8f77e51bed..32eef6f694 100644 --- a/packages/react-router-dom-v5-compat/package.json +++ b/packages/react-router-dom-v5-compat/package.json @@ -1,6 +1,6 @@ { "name": "react-router-dom-v5-compat", - "version": "6.24.1", + "version": "6.25.0", "description": "Migration path to React Router v6 from v4/5", "keywords": [ "react", diff --git a/packages/react-router-dom/CHANGELOG.md b/packages/react-router-dom/CHANGELOG.md index 18cbd631a4..d27db34141 100644 --- a/packages/react-router-dom/CHANGELOG.md +++ b/packages/react-router-dom/CHANGELOG.md @@ -1,5 +1,21 @@ # `react-router-dom` +## 6.25.0 + +### Minor Changes + +- Stabilize `future.unstable_skipActionErrorRevalidation` as `future.v7_skipActionErrorRevalidation` ([#11769](https://github.com/remix-run/react-router/pull/11769)) + + - When this flag is enabled, actions will not automatically trigger a revalidation if they return/throw a `Response` with a `4xx`/`5xx` status code + - You may still opt-into revalidation via `shouldRevalidate` + - This also changes `shouldRevalidate`'s `unstable_actionStatus` parameter to `actionStatus` + +### Patch Changes + +- Updated dependencies: + - `react-router@6.25.0` + - `@remix-run/router@1.18.0` + ## 6.24.1 ### Patch Changes diff --git a/packages/react-router-dom/package.json b/packages/react-router-dom/package.json index 007b2a03ed..ef1c3b8e9b 100644 --- a/packages/react-router-dom/package.json +++ b/packages/react-router-dom/package.json @@ -1,6 +1,6 @@ { "name": "react-router-dom", - "version": "6.24.1", + "version": "6.25.0", "description": "Declarative routing for React web applications", "keywords": [ "react", diff --git a/packages/react-router-native/CHANGELOG.md b/packages/react-router-native/CHANGELOG.md index b0d792e82d..b687b36ca4 100644 --- a/packages/react-router-native/CHANGELOG.md +++ b/packages/react-router-native/CHANGELOG.md @@ -1,5 +1,12 @@ # `react-router-native` +## 6.25.0 + +### Patch Changes + +- Updated dependencies: + - `react-router@6.25.0` + ## 6.24.1 ### Patch Changes diff --git a/packages/react-router-native/package.json b/packages/react-router-native/package.json index 02536385b4..9c3afb01ef 100644 --- a/packages/react-router-native/package.json +++ b/packages/react-router-native/package.json @@ -1,6 +1,6 @@ { "name": "react-router-native", - "version": "6.24.1", + "version": "6.25.0", "description": "Declarative routing for React Native applications", "keywords": [ "react", diff --git a/packages/react-router/CHANGELOG.md b/packages/react-router/CHANGELOG.md index aae5d0795f..5c555c2247 100644 --- a/packages/react-router/CHANGELOG.md +++ b/packages/react-router/CHANGELOG.md @@ -1,5 +1,21 @@ # `react-router` +## 6.25.0 + +### Minor Changes + +- Stabilize `future.unstable_skipActionErrorRevalidation` as `future.v7_skipActionErrorRevalidation` ([#11769](https://github.com/remix-run/react-router/pull/11769)) + + - When this flag is enabled, actions will not automatically trigger a revalidation if they return/throw a `Response` with a `4xx`/`5xx` status code + - You may still opt-into revalidation via `shouldRevalidate` + - This also changes `shouldRevalidate`'s `unstable_actionStatus` parameter to `actionStatus` + +### Patch Changes + +- Fix regression and properly decode paths inside `useMatch` so matches/params reflect decoded params ([#11789](https://github.com/remix-run/react-router/pull/11789)) +- Updated dependencies: + - `@remix-run/router@1.18.0` + ## 6.24.1 ### Patch Changes diff --git a/packages/react-router/package.json b/packages/react-router/package.json index 812f3e0c59..92a62a6dec 100644 --- a/packages/react-router/package.json +++ b/packages/react-router/package.json @@ -1,6 +1,6 @@ { "name": "react-router", - "version": "6.24.1", + "version": "6.25.0", "description": "Declarative routing for React", "keywords": [ "react", diff --git a/packages/router/CHANGELOG.md b/packages/router/CHANGELOG.md index 0dece7e675..2b7c0cb831 100644 --- a/packages/router/CHANGELOG.md +++ b/packages/router/CHANGELOG.md @@ -1,5 +1,20 @@ # `@remix-run/router` +## 1.18.0 + +### Minor Changes + +- Stabilize `future.unstable_skipActionErrorRevalidation` as `future.v7_skipActionErrorRevalidation` ([#11769](https://github.com/remix-run/react-router/pull/11769)) + + - When this flag is enabled, actions will not automatically trigger a revalidation if they return/throw a `Response` with a `4xx`/`5xx` status code + - You may still opt-into revalidation via `shouldRevalidate` + - This also changes `shouldRevalidate`'s `unstable_actionStatus` parameter to `actionStatus` + +### Patch Changes + +- Fix bubbling of errors thrown from `unstable_patchRoutesOnMiss` ([#11786](https://github.com/remix-run/react-router/pull/11786)) +- Fix hydration in SSR apps using `unstable_patchRoutesOnMiss` that matched a splat route on the server ([#11790](https://github.com/remix-run/react-router/pull/11790)) + ## 1.17.1 ### Patch Changes diff --git a/packages/router/package.json b/packages/router/package.json index a133c23194..4c742439a4 100644 --- a/packages/router/package.json +++ b/packages/router/package.json @@ -1,6 +1,6 @@ { "name": "@remix-run/router", - "version": "1.17.1", + "version": "1.18.0", "description": "Nested/Data-driven/Framework-agnostic Routing", "keywords": [ "remix",