Update dependency react-router-dom to v7
This PR contains the following updates:
| Package | Change | Age | Confidence |
|---|---|---|---|
| react-router-dom (source) | 5.1.2 -> 7.10.1 |
Release Notes
remix-run/react-router (react-router-dom)
v7.10.1
Patch Changes
- Updated dependencies:
v7.10.0
Patch Changes
- Updated dependencies:
v7.9.6
Patch Changes
- Updated dependencies:
v7.9.5
Patch Changes
- Updated dependencies:
v7.9.4
Patch Changes
- Updated dependencies:
v7.9.3
Patch Changes
- Updated dependencies:
v7.9.2
Patch Changes
- Updated dependencies:
v7.9.1
Patch Changes
- Updated dependencies:
v7.9.0
Patch Changes
- Updated dependencies:
v7.8.2
Patch Changes
- Updated dependencies:
v7.8.1
Patch Changes
- Updated dependencies:
v7.8.0
Patch Changes
- Updated dependencies:
v7.7.1
Patch Changes
- Updated dependencies:
v7.7.0
Patch Changes
- Updated dependencies:
v7.6.3
Patch Changes
- Updated dependencies:
v7.6.2
Patch Changes
- Updated dependencies:
v7.6.1
Patch Changes
- Updated dependencies:
v7.6.0
Patch Changes
- Updated dependencies:
v7.5.3
Patch Changes
- Updated dependencies:
v7.5.2
Patch Changes
- Updated dependencies:
v7.5.1
Patch Changes
- Updated dependencies:
v7.5.0
Patch Changes
- Updated dependencies:
v7.4.1
Patch Changes
- Updated dependencies:
v7.4.0
Patch Changes
- Updated dependencies:
v7.3.0
Patch Changes
- Updated dependencies:
v7.2.0
Patch Changes
- Updated dependencies:
v7.1.5
Patch Changes
- Updated dependencies:
v7.1.4
Patch Changes
- Updated dependencies:
v7.1.3
Patch Changes
- Updated dependencies:
v7.1.2
Patch Changes
- Updated dependencies:
v7.1.1
Patch Changes
- Updated dependencies:
v7.1.0
Patch Changes
- Updated dependencies:
v7.0.2
Patch Changes
- Updated dependencies:
v7.0.1
Patch Changes
- Updated dependencies:
v7.0.0
Major Changes
-
Remove the original
deferimplementation in favor of using raw promises via single fetch andturbo-stream. This removes these exports from React Router: (#11744)deferAbortedDeferredErrortype TypedDeferredDataUNSAFE_DeferredDataUNSAFE_DEFERRED_SYMBOL,
-
Use
createRemixRouter/RouterProviderinentry.clientinstead ofRemixBrowser(#11469) -
Remove single fetch future flag. (#11522)
-
Remove
future.v7_startTransitionflag (#11696) -
Remove
future.v7_normalizeFormMethodfuture flag (#11697) -
Allow returning
undefinedfrom actions and loaders (#11680) -
update minimum node version to 18 (#11690)
-
Remove
future.v7_prependBasenamefrom the ionternalized@remix-run/routerpackage (#11726) -
Remove
future.v7_throwAbortReasonfrom internalized@remix-run/routerpackage (#11728) -
Add
exportsfield to all packages (#11675) -
node package no longer re-exports from react-router (#11702)
-
updates the minimum React version to 18 (#11689)
-
- Remove the
future.v7_partialHydrationflag (#11725)- This also removes the
<RouterProvider fallbackElement>prop- To migrate, move the
fallbackElementto ahydrateFallbackElement/HydrateFallbackon your root route
- To migrate, move the
- Also worth nothing there is a related breaking changer with this future flag:
- Without
future.v7_partialHydration(when usingfallbackElement),state.navigationwas populated during the initial load - With
future.v7_partialHydration,state.navigationremains in an"idle"state during the initial load
- Without
- This also removes the
- Remove the
-
Remove
future.v7_fetcherPersistflag (#11731)
Minor Changes
- Add prefetching support to
Link/NavLinkwhen using Remix SSR (#11402) - Enhance
ScrollRestorationso it can restore properly on an SSR'd document load (#11401) - Add built-in Remix-style hydration support to
RouterProvider. When running from a Remix-SSR'd HTML payload with the properwindowvariables (__remixContext,__remixManifest,__remixRouteModules), you don't need to pass arouterprop andRouterProviderwill create therouterfor you internally. (#11396) (#11400)
Patch Changes
- Memoize some
RouterProviderinternals to reduce uneccesary re-renders (#11817) - Updated dependencies:
v6.30.2
v6.30.1
v6.30.0
v6.29.0
v6.28.2
v6.28.1
v6.28.0
v6.27.0
v6.26.2
v6.26.1
v6.26.0
v6.25.1
v6.25.0
v6.24.1
v6.24.0
v6.23.1
v6.23.0
v6.22.3
v6.22.2
v6.22.1
v6.22.0
v6.21.3
v6.21.2
v6.21.1
v6.21.0
v6.20.1
v6.20.0
v6.19.0
v6.18.0
v6.17.0
v6.16.0
v6.15.0
v6.14.2
v6.14.1
v6.14.0
v6.13.0
v6.12.1
v6.12.0
v6.11.2
v6.11.1
v6.11.0
v6.10.0
v6.9.0
v6.8.2
v6.8.1
v6.8.0
v6.7.0
v6.6.2
v6.6.1
v6.6.0
v6.5.0
v6.4.5
v6.4.4: v6.4.4
What's Changed
- Throw an error if an
action/loaderfunction returnsundefinedas revalidations need to know whether the loader has previously been executed.undefinedalso causes issues during SSR stringification for hydration. You should always ensure yourloader/actionreturns a value, and you may returnnullif you don't wish to return anything. (#9511) - Properly handle redirects to external domains (#9590, #9654)
- Preserve the HTTP method on 307/308 redirects (#9597)
- Support
basenamein static data routers (#9591) - Enhanced
ErrorResponsebodies to contain more descriptive text in internal 403/404/405 scenarios - Fix issues with encoded characters in
NavLinkand descendant<Routes>(#9589, #9647) - Properly serialize/deserialize
ErrorResponseinstances when using built-in hydration (#9593) - Support
basenamein static data routers (#9591) - Updated dependencies:
@remix-run/[email protected][email protected]
Full Changelog: https://github.com/remix-run/react-router/compare/[email protected]@6.4.4
v6.4.3
v6.4.2
v6.4.1
v6.4.0
v6.3.0: [email protected]
What's Changed
- Added the v5 to v6 backwards compatibility package 💜 (#8752). The official guide can be found in this discussion
New Contributors
- @mfijas made their first contribution in #8717
- @ThornWu made their first contribution in #8718
- @janpaepke made their first contribution in #8651
- @rtmann made their first contribution in #8725
Full Changelog: https://github.com/remix-run/react-router/compare/v6.2.2...v6.3.0
v6.2.2
What's Changed
🐛 Bug Fixes
- Fixed nested splat routes that begin with special URL-safe characters (#8563)
- Fixed a bug where index routes were missing route context in some cases (#8497)
New Contributors
- @chasinhues made their first contribution in #8514
- @underager made their first contribution in #8531
- @kantuni made their first contribution in #8537
- @ArjaanBuijk made their first contribution in #8536
- @jmargeta made their first contribution in #8548
- @koojaa made their first contribution in #8542
- @chrisngobanh made their first contribution in #8576
- @ChristopherChudzicki made their first contribution in #8582
- @awreese made their first contribution in #8596
- @bhbs made their first contribution in #8601
- @LukerSpringtree made their first contribution in #8619
- @hsbtr made their first contribution in #8476
- @abhi-kr-2100 made their first contribution in #8658
- @cvbuelow made their first contribution in #8663
- @hyesungoh made their first contribution in #8666
- @BrianT1414 made their first contribution in #8667
- @IbraRouisDev made their first contribution in #8683
- @shihanng made their first contribution in #8689
- @latin-1 made their first contribution in #8529
- @Isammoc made their first contribution in #8533
- @KutnerUri made their first contribution in #8278
- @shamsup made their first contribution in #8563
- @brophdawg11 made their first contribution in #8691
Full Changelog: https://github.com/remix-run/react-router/compare/v6.2.1...v6.2.2
v6.2.1
This release updates the internal history dependency to 5.2.0.
Full Changelog: https://github.com/remix-run/react-router/compare/v6.2.0...v6.2.1
v6.2.0
🐛 Bug fixes
- Fixed the
RoutePropselementtype, which should be aReactNode(#8473) - Fixed a bug with
useOutletfor top-level routes (#8483)
✨ Features
- We now use statically analyzable CJS exports. This enables named imports in Node ESM scripts (See the commit).
New Contributors
- @thisiskartik made their first contribution in #8487
- @vijaypushkin made their first contribution in #8491
Full Changelog: https://github.com/remix-run/react-router/compare/v6.1.1...v6.2.0
v6.1.1
In v6.1.0 we inadvertently shipped a new, undocumented API that will likely introduce bugs (#7586). We have flagged HistoryRouter as unstable_HistoryRouter, as this API will likely need to change before a new major release.
Full Changelog: https://github.com/remix-run/react-router/compare/v6.1.0...v6.1.1
v6.1.0
🐛 Bug fixes
- Fixed a bug that broke support for base64 encoded IDs on nested routes (#8291)
✨ Features
<Outlet>can now receive acontextprop. This value is passed to child routes and is accessible via the newuseOutletContexthook. See the API docs for details. (#8461)<NavLink>can now receive a child function for access to its props. (#8164)
💅 Enhancements
- Improved TypeScript signature for
useMatchandmatchPath. For example, when you calluseMatch("foo/:bar/:baz"), the path is parsed and the return type will bePathMatch<"bar" | "baz">. (#8030) - A few error message improvements (#8202)
New Contributors
- @rwieruch made their first contribution in #8244
- @codeiotic made their first contribution in #8247
- @Sannnao made their first contribution in #8263
- @mattmazzola made their first contribution in #8255
- @ngokevin made their first contribution in #8267
- @TimisRobert made their first contribution in #8269
- @mikeldking made their first contribution in #8279
- @fishmandev made their first contribution in #8289
- @rjerue made their first contribution in #8304
- @rockingskier made their first contribution in #8314
- @arinthros made their first contribution in #8337
- @noisypigeon made their first contribution in #8361
- @elylucas made their first contribution in #8368
- @paulsmithkc made their first contribution in #8357
- @sanketshah19 made their first contribution in #8372
- @JakubDrozd made their first contribution in #8402
- @markivancho made their first contribution in #8414
- @turansky made their first contribution in #8420
- @shivamsinghchahar made their first contribution in #8423
- @petersendidit made their first contribution in #8436
- @Ajayff4 made their first contribution in #8373
- @RobHannay made their first contribution in #8455
- @kddnewton made their first contribution in #8030
- @brockross made their first contribution in #8462
- @sergiodxa made their first contribution in #8164
- @baozouai made their first contribution in #8171
- @liuhanqu made their first contribution in #8374
Full Changelog: https://github.com/remix-run/react-router/compare/v6.0.1...v6.1.0
v6.0.2
✨ Features
- Added the
reloadDocumentprop to<Link>. This allows<Link>to function like a normal anchor tag by reloading the document after navigation while maintaining the relativetoresolution.
🗒️ Docs
- Fixed several issues in docblocks and the docs themselves. See the full changelog for the deets!
🤝 New Contributors
- @rwieruch made their first contribution in #8244
- @ProProgrammer2504 made their first contribution in #8247
- @Sannnao made their first contribution in #8263
- @mattmazzola made their first contribution in #8255
- @ngokevin made their first contribution in #8267
- @TimisRobert made their first contribution in #8269
- @mikeldking made their first contribution in #8279
- @fishmandev made their first contribution in #8289
Full Changelog
v6.0.1
🐛 Bug Fixes
- Add a default
<StaticRouter location>value (#8243) - Add invariant for using
<Route>inside<Routes>to help people make the change (#8238)
v6.0.0
React Router v6 is here!
Please go read our blog post for more information on all the great stuff in v6 including notes about how to upgrade from React Router v5 and Reach Router.
v5.3.4
We removed the mini-create-react-context dependency, moving it into an internal module to eliminate peer dependency warnings for users on React 18 (#9382).
Full Changelog: https://github.com/remix-run/react-router/compare/v5.3.3...v5.3.4
v5.3.3
This release fixes a bad version selector in react-router-native.
v5.3.2
v5.3.1
This release adds missing LICENSE files to the published build.
v5.3.0
This release of react-router-dom adds support for passing a function to either the className or style props to conditionally apply values based on the link's active state.
This provides similar functionality as the existing activeClassName and activeStyle props, but is a bit more powerful. For example, you can now easily apply styles exclusively to an inactive NavLink as well. This offers a nicer experience for folks who use utility class-based CSS tools such as Tailwind.
function Comp() {
return (
<NavLink
to="/"
className={isActive =>
`px-3 py-2 ${isActive ? 'text-gray-200' : 'text-gray-800'}`
}
>
Home
</NavLink>
);
}
Note that as of v6.0.0-beta.3, the activeClassName and activeStyle props are removed completely. Adding support for functional className and style props to both v5 and v6 will give v5 users an easier upgrade path.
Thanks to @tim-phillips for raising the issue that inspired the change! 🥳
v5.2.1
This release fixes a bug with <Link> so that, when the to location is the same as the current, the history state entry is replaced instead of pushed to the stack. See #5362 for details. 🥳
Thanks to @guidobouman for the PR and for everyone else who weighed in for the fix!
v5.2.0
This release includes a notable performance boost by separating the "Router" context from the "History" context internally. We also allow every element type for Link's component prop and support a sensitive prop on NavLink for control over case sensitive matching.
Enjoy!
Changes
- Add
sensitiveprop on NavLink (#7251 by @caseywebdev) - Fix Link
componentprop type check (#7276 by @ypyakymiv) - Update
mini-create-react-context(#7288 by @patricksmms) - Separate
historyto its own context (#7103 by @illuminist)
Configuration
📅 Schedule: Branch creation - Between 12:00 AM and 03:59 AM, only on Monday ( * 0-3 * * 1 ) (UTC), 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.
@beatrice-acasandrei @alexandru-io this is failing on a perf test, can you put this in the perfherder queue to fix the test and upgrade the package?
@alexandru-io I asked 6 months ago for this to be looked into as it is blocked on a perfherder test, can we make this a higher priority?
Sorry @jmaher we'll look into it with higher priority. cc @beatrice-acasandrei
Hi @jmaher! We looked into upgrading React Router Dom to V6, but we have some concerns. There are many breaking changes, one that stands out the most is that React Router Dom isn't able to support class components because they can't use React hooks. Unfortunately for us in the codebase most of the react components are classes. It affects both Treeherder and Perfherder and it’s not trivial to fix. At the end it should be deployed to prototype and tested rigorously by us and perhaps multiple users. Because of this we are also trying to establish a migration strategy.
Because it’s not trivial and it also affects Treeherder, is there maybe someone that can help us with the upgrade? We think this will take some time to accomplish and we’ll need to prioritize our tasks. Please let us know what your thoughts are.
Files that need to be updated: ui/App.jsx ui/intermittent-failures/App.jsx ui/perfherder/App.jsx ui/push-health/App.jsx
Some resources: https://reactrouter.com/en/main/upgrading/v5 https://stackoverflow.com/questions/74239145/react-router-dom-v6-does-v6-support-for-class-components https://stackoverflow.com/questions/70443591/how-to-pass-props-using-element-in-react-router-v6
thanks for reaching out, Right now this patch is failing on perfherder tests, so possibly if you could add a fix for the perfherder tests (and code as needed), we could pick up the related work/testing for treeherder proper.
thanks for reaching out, Right now this patch is failing on perfherder tests, so possibly if you could add a fix for the perfherder tests (and code as needed), we could pick up the related work/testing for treeherder proper.
@jmaher There's no quick fix for this, the tests are not the issue here. The update from V6 affects the routes, without fixing them properly everything is busted.
We tried locally to upgrade to v6 and fixing the errors, that's when we realized all of the above. Currently we are looking into a compatibility package that will allow us to migrate incrementally to V6.
are you saying in order to get the tests working for perfherder you need to fix treeherder routes as well, not just perfherder routes? I would expect some other tests to fail if there were more fixes, but that could be a sign of poor tests
testing this current PR locally (via yarn start) yields a treeherder that I can view results and add/remove filters as well as annotate failures. While I didn't test everything, it seems that the large majority of the functionality works. I suspect all that needs to happen is fix the perfherder tests and maybe a route or two within perfherder.
testing this current PR locally (via
yarn start) yields a treeherder that I can view results and add/remove filters as well as annotate failures. While I didn't test everything, it seems that the large majority of the functionality works. I suspect all that needs to happen is fix the perfherder tests and maybe a route or two within perfherder.
@jmaher Because package.json is affected I recommend deleting node_modules and then running yarn install. Currently everything is working for you because you have the react router dom v5 installed I assume, not v6. You could also check the version installed before running yarn start to make sure the changes from this PR are applied.
are you saying in order to get the tests working for perfherder you need to fix treeherder routes as well, not just perfherder routes? I would expect some other tests to fail if there were more fixes, but that could be a sign of poor tests
Yes, that's what I was trying to explain. I'm not sure why the other tests are not failing.
got it, this does reproduce and I removed the perfherder tag as the