This repository was archived by the owner on Jan 16, 2025. It is now read-only.
Update dependency react-router-dom to v7 #7
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
^6.18.0->^7.0.0Release Notes
remix-run/react-router (react-router-dom)
v7.0.1Compare Source
Patch Changes
[email protected]v7.0.0Compare Source
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)
future.v7_partialHydrationflag (#11725)<RouterProvider fallbackElement>propfallbackElementto ahydrateFallbackElement/HydrateFallbackon your root routefuture.v7_partialHydration(when usingfallbackElement),state.navigationwas populated during the initial loadfuture.v7_partialHydration,state.navigationremains in an"idle"state during the initial loadRemove
future.v7_fetcherPersistflag (#11731)Minor Changes
Link/NavLinkwhen using Remix SSR (#11402)ScrollRestorationso it can restore properly on an SSR'd document load (#11401)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
RouterProviderinternals to reduce uneccesary re-renders (#11817)[email protected]v6.28.0Compare Source
Minor Changes
json/deferin favor of returning raw objectsPatch Changes
[email protected]@remix-run/[email protected]v6.27.0Compare Source
v6.26.2Compare Source
v6.26.1Compare Source
v6.26.0Compare Source
Minor Changes
replace(url, init?)alternative toredirect(url, init?)that performs ahistory.replaceStateinstead of ahistory.pushStateon client-side navigation redirects (#11811)Patch Changes
future.v7_partialHydrationalong withunstable_patchRoutesOnMiss(#11838)router.state.matcheswill now include any partial matches so that we can render ancestorHydrateFallbackcomponents@remix-run/[email protected][email protected]v6.25.1Compare Source
Patch Changes
RouterProviderinternals to reduce unnecessary re-renders (#11803)[email protected]v6.25.0Compare Source
Minor Changes
Stabilize
future.unstable_skipActionErrorRevalidationasfuture.v7_skipActionErrorRevalidation(#11769)Responsewith a4xx/5xxstatus codeshouldRevalidateshouldRevalidate'sunstable_actionStatusparameter toactionStatusPatch Changes
[email protected]@remix-run/[email protected]v6.24.1Compare Source
Patch Changes
polyfill.ioreference from warning message because the domain was sold and has since been determined to serve malware (#11741)NavLinkRenderPropstype for easier typing of customNavLinkcallback (#11553)@remix-run/[email protected][email protected]v6.24.0Compare Source
Minor Changes
Add support for Lazy Route Discovery (a.k.a. Fog of War) (#11626)
unstable_patchRoutesOnMissdocs: https://reactrouter.com/en/main/routers/create-browser-routerPatch Changes
fetcher.submittypes - remove incorrectnavigate/fetcherKey/unstable_viewTransitionoptions because they are only relevant foruseSubmit(#11631)location.statevalues passed to<StaticRouter>(#11495)[email protected]@remix-run/[email protected]v6.23.1Compare Source
Patch Changes
documentexistence when checkingstartViewTransition(#11544)react-router-dom/serverimport back toreact-router-dominstead ofindex.ts(#11514)@remix-run/[email protected][email protected]v6.23.0Compare Source
Minor Changes
unstable_dataStrategyconfiguration option (#11098)Patch Changes
@remix-run/[email protected][email protected]v6.22.3Compare Source
Patch Changes
@remix-run/[email protected][email protected]v6.22.2Compare Source
Patch Changes
@remix-run/[email protected][email protected]v6.22.1Compare Source
v6.22.0Compare Source
Minor Changes
window__reactRouterVersiontag for CWV Report detection (#11222)Patch Changes
@remix-run/[email protected][email protected]v6.21.3Compare Source
Patch Changes
NavLinkisPendingwhen abasenameis used (#11195)unstable_prefix fromBlocker/BlockerFunctiontypes (#11187)[email protected]v6.21.2Compare Source
v6.21.1Compare Source
Patch Changes
[email protected]@remix-run/[email protected]v6.21.0Compare Source
Minor Changes
Add a new
future.v7_relativeSplatPathflag to implement a breaking bug fix to relative routing when inside a splat route. (#11087)This fix was originally added in #10983 and was later reverted in #11078 because it was determined that a large number of existing applications were relying on the buggy behavior (see #11052)
The Bug
The buggy behavior is that without this flag, the default behavior when resolving relative paths is to ignore any splat (
*) portion of the current route path.The Background
This decision was originally made thinking that it would make the concept of nested different sections of your apps in
<Routes>easier if relative routing would replace the current splat:Any paths like
/dashboard,/dashboard/team,/dashboard/projectswill match theDashboardroute. The dashboard component itself can then render nested<Routes>:Now, all links and route paths are relative to the router above them. This makes code splitting and compartmentalizing your app really easy. You could render the
Dashboardas its own independent app, or embed it into your large app without making any changes to it.The Problem
The problem is that this concept of ignoring part of a path breaks a lot of other assumptions in React Router - namely that
"."always means the current location pathname for that route. When we ignore the splat portion, we start getting invalid paths when using".":We've also introduced an issue that we can no longer move our
DashboardTeamcomponent around our route hierarchy easily - since it behaves differently if we're underneath a non-splat route, such as/dashboard/:widget. Now, our"."links will, properly point to ourself inclusive of the dynamic param value so behavior will break from it's corresponding usage in a/dashboard/*route.Even worse, consider a nested splat route configuration:
Now, a
<Link to=".">and a<Link to="..">inside theDashboardcomponent go to the same place! That is definitely not correct!Another common issue arose in Data Routers (and Remix) where any
<Form>should post to it's own routeactionif you the user doesn't specify a form action:This is just a compounded issue from the above because the default location for a
Formto submit to is itself (".") - and if we ignore the splat portion, that now resolves to the parent route.The Solution
If you are leveraging this behavior, it's recommended to enable the future flag, move your splat to it's own route, and leverage
../for any links to "sibling" pages:This way,
.means "the full current pathname for my route" in all cases (including static, dynamic, and splat routes) and..always means "my parents pathname".Patch Changes
@remix-run/[email protected][email protected]v6.20.1Compare Source
Patch Changes
useResolvedPathfix for splat routes due to a large number of applications that were relying on the buggy behavior (see https://github.com/remix-run/react-router/issues/11052#issuecomment-1836589329). We plan to re-introduce this fix behind a future flag in the next minor version. (#11078)[email protected]@remix-run/[email protected]v6.20.0Compare Source
Minor Changes
PathParamtype from the public API (#10719)Patch Changes
[email protected]@remix-run/[email protected]v6.19.0Compare Source
Minor Changes
unstable_flushSyncoption touseNavigate/useSumbit/fetcher.load/fetcher.submitto opt-out ofReact.startTransitionand intoReactDOM.flushSyncfor state updates (#11005)unstable_usePromptto accept aBlockerFunctionin addition to aboolean(#10991)Patch Changes
keyin auseFetcherthat remains mounted wasn't getting picked up (#11009)useFormActionwhich was incorrectly inheriting the?indexquery param from child routeactionsubmissions (#11025)NavLinkactivelogic whentolocation has a trailing slash (#10734)[email protected]@remix-run/[email protected]Configuration
📅 Schedule: Branch creation - "after 7am every weekday,before 5pm every weekday" in timezone America/New_York, 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.
This PR was generated by Mend Renovate. View the repository job log.