Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update react-router monorepo to v6 (major) - autoclosed #10866

Closed
wants to merge 1 commit into from

Conversation

renovate[bot]
Copy link
Contributor

@renovate renovate bot commented Aug 30, 2021

Mend Renovate

This PR contains the following updates:

Package Change Age Adoption Passing Confidence
react-router 5.3.4 -> 6.6.2 age adoption passing confidence
react-router-dom 5.3.4 -> 6.6.2 age adoption passing confidence

Release Notes

remix-run/react-router (react-router)

v6.6.2

Compare Source

Patch Changes
  • Ensure useId consistency during SSR (#​9805)

v6.6.1

Compare Source

Patch Changes
  • Updated dependencies:
    • @remix-run/router@1.2.1

v6.6.0

Compare Source

Patch Changes
  • Prevent useLoaderData usage in errorElement (#​9735)
  • Updated dependencies:
    • @remix-run/router@1.2.0

v6.5.0

Compare Source

This release introduces support for Optional Route Segments. Now, adding a ? to the end of any path segment will make that entire segment optional. This works for both static segments and dynamic parameters.

Optional Params Examples

  • <Route path=":lang?/about> will match:
    • /:lang/about
    • /about
  • <Route path="/multistep/:widget1?/widget2?/widget3?"> will match:
    • /multistep
    • /multistep/:widget1
    • /multistep/:widget1/:widget2
    • /multistep/:widget1/:widget2/:widget3

Optional Static Segment Example

  • <Route path="/home?"> will match:
    • /
    • /home
  • <Route path="/fr?/about"> will match:
    • /about
    • /fr/about
Minor Changes
  • Allows optional routes and optional static segments (#​9650)
Patch Changes
  • Stop incorrectly matching on partial named parameters, i.e. <Route path="prefix-:param">, to align with how splat parameters work. If you were previously relying on this behavior then it's recommended to extract the static portion of the path at the useParams call site: (#​9506)
// Old behavior at URL /prefix-123
<Route path="prefix-:id" element={<Comp /> }>

function Comp() {
  let params = useParams(); // { id: '123' }
  let id = params.id; // "123"
  ...
}

// New behavior at URL /prefix-123
<Route path=":id" element={<Comp /> }>

function Comp() {
  let params = useParams(); // { id: 'prefix-123' }
  let id = params.id.replace(/^prefix-/, ''); // "123"
  ...
}
  • Updated dependencies:
    • @remix-run/router@1.1.0

v6.4.5

Compare Source

Patch Changes
  • Updated dependencies:
    • @remix-run/router@1.0.5

v6.4.4

Compare Source

Patch Changes
  • Updated dependencies:
    • @remix-run/router@1.0.4

v6.4.3

Compare Source

Patch Changes
  • useRoutes should be able to return null when passing locationArg (#​9485)
  • fix initialEntries type in createMemoryRouter (#​9498)
  • Updated dependencies:
    • @remix-run/router@1.0.3

v6.4.2

Compare Source

Patch Changes
  • Fix IndexRouteObject and NonIndexRouteObject types to make hasErrorElement optional (#​9394)
  • Enhance console error messages for invalid usage of data router hooks (#​9311)
  • If an index route has children, it will result in a runtime error. We have strengthened our RouteObject/RouteProps types to surface the error in TypeScript. (#​9366)
  • Updated dependencies:
    • @remix-run/router@1.0.2

v6.4.1

Compare Source

Patch Changes
  • Preserve state from initialEntries (#​9288)
  • Updated dependencies:
    • @remix-run/router@1.0.1

v6.4.0

Compare Source

Whoa this is a big one! 6.4.0 brings all the data loading and mutation APIs over from Remix. Here's a quick high level overview, but it's recommended you go check out the docs, especially the feature overview and the tutorial.

New APIs

  • Create your router with createMemoryRouter
  • Render your router with <RouterProvider>
  • Load data with a Route loader and mutate with a Route action
  • Handle errors with Route errorElement
  • Defer non-critical data with defer and Await

Bug Fixes

  • Path resolution is now trailing slash agnostic (#​8861)
  • useLocation returns the scoped location inside a <Routes location> component (#​9094)

Updated Dependencies

  • @remix-run/router@1.0.0

v6.3.0: react-router@v6.3.0

Compare Source

What's Changed

New Contributors

Full Changelog: remix-run/react-router@v6.2.2...v6.3.0

v6.2.2

Compare Source

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

Full Changelog: remix-run/react-router@v6.2.1...v6.2.2

v6.2.1

Compare Source

This release updates the internal history dependency to 5.2.0.

Full Changelog: remix-run/react-router@v6.2.0...v6.2.1

v6.2.0

Compare Source

🐛 Bug fixes

  • Fixed the RouteProps element type, which should be a ReactNode (#​8473)
  • Fixed a bug with useOutlet for 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

Full Changelog: remix-run/react-router@v6.1.1...v6.2.0

v6.1.1

Compare Source

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: remix-run/react-router@v6.1.0...v6.1.1

v6.1.0

Compare Source

🐛 Bug fixes

  • Fixed a bug that broke support for base64 encoded IDs on nested routes (#​8291)

✨ Features

  • <Outlet> can now receive a context prop. This value is passed to child routes and is accessible via the new useOutletContext hook. 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 useMatch and matchPath. For example, when you call useMatch("foo/:bar/:baz"), the path is parsed and the return type will be PathMatch<"bar" | "baz">. (#​8030)
  • A few error message improvements (#​8202)

New Contributors

Full Changelog: remix-run/react-router@v6.0.1...v6.1.0

v6.0.2

Compare Source

✨ Features

  • Added the reloadDocument prop to <Link>. This allows <Link> to function like a normal anchor tag by reloading the document after navigation while maintaining the relative to resolution.

🗒️ Docs

  • Fixed several issues in docblocks and the docs themselves. See the full changelog for the deets!

🤝 New Contributors

Full Changelog

v6.0.1

Compare Source

🐛 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

Compare Source

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.

remix-run/react-router (react-router-dom)

v6.6.2

Compare Source

Patch Changes
  • Ensure useId consistency during SSR (#​9805)
  • Updated dependencies:
    • react-router@6.6.2

v6.6.1

Compare Source

Patch Changes
  • Updated dependencies:
    • @remix-run/router@1.2.1
    • react-router@6.6.1

v6.6.0

Compare Source

Minor Changes
  • Add useBeforeUnload() hook (#​9664)
  • Remove unstable_ prefix from createStaticHandler/createStaticRouter/StaticRouterProvider (#​9738)
Patch Changes
  • Proper hydration of Error objects from StaticRouterProvider (#​9664)
  • Support uppercase <Form method> and useSubmit method values (#​9664)
  • Skip initial scroll restoration for SSR apps with hydrationData (#​9664)
  • Fix <button formmethod> form submission overriddes (#​9664)
  • Updated dependencies:
    • @remix-run/router@1.2.0
    • react-router@6.6.0

v6.5.0

Compare Source

Patch Changes
  • Updated dependencies:
    • react-router@6.5.0
    • @remix-run/router@1.1.0

v6.4.5

Compare Source

Patch Changes
  • Updated dependencies:
    • @remix-run/router@1.0.5
    • react-router@6.4.5

v6.4.4

Compare Source

Patch Changes
  • Fix issues with encoded characters in NavLink and descendant <Routes> (#​9589, #​9647)
  • Properly serialize/deserialize ErrorResponse instances when using built-in hydration (#​9593)
  • Support basename in static data routers (#​9591)
  • Updated dependencies:
    • @remix-run/router@1.0.4
    • react-router@6.4.4

v6.4.3

Compare Source

Patch Changes
  • Fix hrefs generated for createHashRouter (#​9409)
  • fix encoding/matching issues with special chars (#​9477, #​9496)
  • Properly support index routes with a path in useResolvedPath (#​9486)
  • Respect relative=path prop on NavLink (#​9453)
  • Fix NavLink behavior for root urls (#​9497)
  • Updated dependencies:
    • @remix-run/router@1.0.3
    • react-router@6.4.3

v6.4.2

Compare Source

Patch Changes
  • Respect basename in useFormAction (#​9352)
  • Enhance console error messages for invalid usage of data router hooks (#​9311)
  • If an index route has children, it will result in a runtime error. We have strengthened our RouteObject/RouteProps types to surface the error in TypeScript. (#​9366)
  • Updated dependencies:
    • react-router@6.4.2
    • @remix-run/router@1.0.2

v6.4.1

Compare Source

Patch Changes
  • Updated dependencies:
    • react-router@6.4.1
    • @remix-run/router@1.0.1

v6.4.0

Compare Source

Whoa this is a big one! 6.4.0 brings all the data loading and mutation APIs over from Remix. Here's a quick high level overview, but it's recommended you go check out the docs, especially the feature overview and the tutorial.

New APIs

  • Create your router with createMemoryRouter/createBrowserRouter/createHashRouter
  • Render your router with <RouterProvider>
  • Load data with a Route loader and mutate with a Route action
  • Handle errors with Route errorElement
  • Submit data with the new <Form> component
  • Perform in-page data loads and mutations with useFetcher()
  • Defer non-critical data with defer and Await
  • Manage scroll position with <ScrollRestoration>

New Features

  • Perform path-relative navigations with <Link relative="path"> (#​9160)

Bug Fixes

  • Path resolution is now trailing slash agnostic (#​8861)
  • useLocation returns the scoped location inside a <Routes location> component (#​9094)
  • respect the <Link replace> prop if it is defined (#​8779)

Updated Dependencies

  • react-router@6.4.0

v6.3.0: react-router@v6.3.0

Compare Source

What's Changed

New Contributors

Full Changelog: remix-run/react-router@v6.2.2...v6.3.0

v6.2.2

Compare Source

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

Full Changelog: remix-run/react-router@v6.2.1...v6.2.2

v6.2.1

Compare Source

This release updates the internal history dependency to 5.2.0.

Full Changelog: remix-run/react-router@v6.2.0...v6.2.1

v6.2.0

Compare Source

🐛 Bug fixes

  • Fixed the RouteProps element type, which should be a ReactNode (#​8473)
  • Fixed a bug with useOutlet for 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

Full Changelog: remix-run/react-router@v6.1.1...v6.2.0

v6.1.1

Compare Source

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: remix-run/react-router@v6.1.0...v6.1.1

v6.1.0

Compare Source

🐛 Bug fixes

  • Fixed a bug that broke support for base64 encoded IDs on nested routes (#​8291)

✨ Features

  • <Outlet> can now receive a context prop. This value is passed to child routes and is accessible via the new useOutletContext hook. 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 useMatch and matchPath. For example, when you call useMatch("foo/:bar/:baz"), the path is parsed and the return type will be PathMatch<"bar" | "baz">. (#​8030)
  • A few error message improvements (#​8202)

New Contributors

Full Changelog: remix-run/react-router@v6.0.1...v6.1.0

v6.0.2

Compare Source

✨ Features

  • Added the reloadDocument prop to <Link>. This allows <Link> to function like a normal anchor tag by reloading the document after navigation while maintaining the relative to resolution.

🗒️ Docs

  • Fixed several issues in docblocks and the docs themselves. See the full changelog for the deets!

🤝 New Contributors

Full Changelog

v6.0.1

Compare Source

🐛 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

Compare Source

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.


Configuration

📅 Schedule: 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 these updates again.


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

This PR has been generated by Mend Renovate. View repository job log here.

@renovate renovate bot force-pushed the renovate/major-react-router-monorepo branch from 046f904 to ed41a63 Compare September 3, 2021 23:21
@renovate renovate bot changed the title Update react-router monorepo to v5 (major) Update react-router monorepo (major) Sep 4, 2021
@renovate renovate bot changed the title Update react-router monorepo (major) Update react-router monorepo (major) - autoclosed Nov 3, 2021
@renovate renovate bot closed this Nov 3, 2021
@renovate renovate bot deleted the renovate/major-react-router-monorepo branch November 3, 2021 22:26
@renovate renovate bot changed the title Update react-router monorepo (major) - autoclosed Update react-router monorepo (major) Nov 5, 2021
@renovate renovate bot reopened this Nov 5, 2021
@renovate renovate bot restored the renovate/major-react-router-monorepo branch November 5, 2021 11:22
@renovate renovate bot force-pushed the renovate/major-react-router-monorepo branch from ed41a63 to 6758b1f Compare November 5, 2021 13:48
@renovate renovate bot changed the title Update react-router monorepo (major) Update react-router monorepo to v6 (major) Nov 5, 2021
@renovate renovate bot force-pushed the renovate/major-react-router-monorepo branch 2 times, most recently from b0cf3b5 to d155ed8 Compare November 9, 2021 23:41
@renovate renovate bot force-pushed the renovate/major-react-router-monorepo branch 2 times, most recently from 2461577 to e53485c Compare December 11, 2021 18:05
@renovate renovate bot force-pushed the renovate/major-react-router-monorepo branch 2 times, most recently from 4b5ea4d to 8d0cb68 Compare December 17, 2021 21:02
@renovate renovate bot force-pushed the renovate/major-react-router-monorepo branch from 8d0cb68 to 2ad11d4 Compare March 1, 2022 01:11
@renovate renovate bot force-pushed the renovate/major-react-router-monorepo branch from 2ad11d4 to a02cefd Compare March 11, 2022 16:19
@renovate renovate bot force-pushed the renovate/major-react-router-monorepo branch from a02cefd to 83eac9e Compare March 31, 2022 21:18
@renovate renovate bot force-pushed the renovate/major-react-router-monorepo branch from 83eac9e to 3285f3d Compare April 17, 2022 16:16
@renovate renovate bot changed the title Update react-router monorepo to v6 (major) Update react-router monorepo to v5 (major) Apr 17, 2022
@renovate renovate bot force-pushed the renovate/major-react-router-monorepo branch from 3285f3d to bd9cc43 Compare April 17, 2022 22:26
@renovate renovate bot changed the title Update react-router monorepo to v5 (major) Update react-router monorepo to v6 (major) Apr 18, 2022
@renovate renovate bot force-pushed the renovate/major-react-router-monorepo branch 2 times, most recently from 9f335e7 to 10c73e7 Compare April 29, 2022 14:09
@renovate renovate bot force-pushed the renovate/major-react-router-monorepo branch 2 times, most recently from 6318494 to c6a38d3 Compare July 22, 2022 22:44
@renovate renovate bot force-pushed the renovate/major-react-router-monorepo branch from c6a38d3 to f0b6990 Compare September 13, 2022 23:17
@renovate renovate bot force-pushed the renovate/major-react-router-monorepo branch from f0b6990 to 7ef72c0 Compare September 21, 2022 22:58
@renovate renovate bot force-pushed the renovate/major-react-router-monorepo branch 2 times, most recently from 402975f to b5d038b Compare September 26, 2022 14:18
@renovate renovate bot force-pushed the renovate/major-react-router-monorepo branch 2 times, most recently from e3ed894 to 0a9a68f Compare October 5, 2022 22:40
@renovate renovate bot force-pushed the renovate/major-react-router-monorepo branch from 0a9a68f to 690b7bd Compare October 17, 2022 17:29
@renovate renovate bot force-pushed the renovate/major-react-router-monorepo branch from 690b7bd to 2daa2bf Compare November 1, 2022 16:46
@renovate renovate bot force-pushed the renovate/major-react-router-monorepo branch 3 times, most recently from 6e2261a to 06c614d Compare December 7, 2022 18:26
@renovate renovate bot force-pushed the renovate/major-react-router-monorepo branch 2 times, most recently from b22f284 to 1058d29 Compare December 13, 2022 12:07
@bobsilverberg
Copy link
Contributor

I have spent a lot of time looking into what it would take to upgrade to react-router v6. It will require a lot of changes to our app, and there is at least one major deficiency with v6 that is quite annoying.

The main problem is that react-router is no longer designed so that one can create a history object, and pass it into the router, so that the same history object is available outside of the router's context. This makes testing difficult, and also means that the functionality we currently have from redux-history-first is broken. There have been a number of issues opened about this, including salvoravida/redux-first-history#95, remix-run/react-router#9422 and remix-run/react-router#9630.

I have a branch in my fork with all of the work I have done thus far, which we could use as a basis for upgrading the app, but I feel that we should wait to see if the react-router and/or redux-history-first folks finally come around to addressing the issue with history, and/or if another library comes along (which seems to happen frequently in the JavaScript world) which would be more palatable. I am loath to make all of the changes to our app now, and then possibly want to move to a different library in the future.

@renovate renovate bot force-pushed the renovate/major-react-router-monorepo branch 2 times, most recently from e08ab3a to d05e480 Compare December 16, 2022 17:54
@renovate renovate bot force-pushed the renovate/major-react-router-monorepo branch 2 times, most recently from 3ef6790 to ff60909 Compare December 23, 2022 17:28
@renovate renovate bot force-pushed the renovate/major-react-router-monorepo branch from ff60909 to 686839d Compare January 9, 2023 21:49
@renovate renovate bot changed the title Update react-router monorepo to v6 (major) Update react-router monorepo to v6 (major) - autoclosed Jan 10, 2023
@renovate renovate bot closed this Jan 10, 2023
@renovate renovate bot deleted the renovate/major-react-router-monorepo branch January 10, 2023 16:45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
1 participant