Skip to content

Conversation

@renovate
Copy link
Contributor

@renovate renovate bot commented Sep 13, 2023

This PR contains the following updates:

Package Change Age Confidence
react-router (source) 6.15.0 -> 6.30.1 age confidence
react-router-dom (source) 6.15.0 -> 6.30.1 age confidence
react-router-native (source) 6.15.0 -> 6.30.0 age confidence

Release Notes

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

v6.30.1: v6.30.1

Compare Source

See the changelog for release notes: https://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v6301

v6.30.0: v6.30.0

Compare Source

See the changelog for release notes: https://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v6300

v6.29.0: v6.29.0

Compare Source

See the changelog for release notes: https://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v6290

v6.28.2: v6.28.2

Compare Source

See the changelog for release notes: https://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v6282

v6.28.1: v6.28.1

Compare Source

See the changelog for release notes: https://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v6281

v6.28.0

Compare Source

Minor Changes
    • Log deprecation warnings for v7 flags (#​11750)
    • Add deprecation warnings to json/defer in favor of returning raw objects
      • These methods will be removed in React Router v7
Patch Changes
  • Update JSDoc URLs for new website structure (add /v6/ segment) (#​12141)
  • Updated dependencies:
    • @remix-run/router@1.21.0

v6.27.0

Compare Source

Minor Changes
  • Stabilize unstable_patchRoutesOnNavigation (#​11973)
    • Add new PatchRoutesOnNavigationFunctionArgs type for convenience (#​11967)
  • Stabilize unstable_dataStrategy (#​11974)
  • Stabilize the unstable_flushSync option for navigations and fetchers (#​11989)
  • Stabilize the unstable_viewTransition option for navigations and the corresponding unstable_useViewTransitionState hook (#​11989)
Patch Changes
  • Fix bug when submitting to the current contextual route (parent route with an index child) when an ?index param already exists from a prior submission (#​12003)

  • Fix useFormAction bug - when removing ?index param it would not keep other non-Remix index params (#​12003)

  • Fix types for RouteObject within PatchRoutesOnNavigationFunction's patch method so it doesn't expect agnostic route objects passed to patch (#​11967)

  • Updated dependencies:

    • @remix-run/router@1.20.0

v6.26.2

Compare Source

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

v6.26.1

Compare Source

Patch Changes
  • Rename unstable_patchRoutesOnMiss to unstable_patchRoutesOnNavigation to match new behavior (#​11888)
  • Updated dependencies:
    • @remix-run/router@1.19.1

v6.26.0

Compare Source

Minor Changes
  • Add a new replace(url, init?) alternative to redirect(url, init?) that performs a history.replaceState instead of a history.pushState on client-side navigation redirects (#​11811)
Patch Changes
  • Fix initial hydration behavior when using future.v7_partialHydration along with unstable_patchRoutesOnMiss (#​11838)
    • During initial hydration, router.state.matches will now include any partial matches so that we can render ancestor HydrateFallback components
  • Updated dependencies:
    • @remix-run/router@1.19.0

v6.25.1

Compare Source

No significant changes to this package were made in this release. See the repo CHANGELOG.md for an overview of all changes in v6.25.1.

v6.25.0

Compare Source

Minor Changes
  • Stabilize future.unstable_skipActionErrorRevalidation as future.v7_skipActionErrorRevalidation (#​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)
  • Updated dependencies:
    • @remix-run/router@1.18.0

v6.24.1

Compare Source

Patch Changes
  • When using future.v7_relativeSplatPath, properly resolve relative paths in splat routes that are children of pathless routes (#​11633)
  • Updated dependencies:
    • @remix-run/router@1.17.1

v6.24.0

Compare Source

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

v6.23.1

Compare Source

Patch Changes
  • allow undefined to be resolved with <Await> (#​11513)
  • Updated dependencies:
    • @remix-run/router@1.16.1

v6.23.0

Compare Source

Minor Changes
  • Add a new unstable_dataStrategy configuration option (#​11098)
    • This option allows Data Router applications to take control over the approach for executing route loaders and actions
    • The default implementation is today's behavior, to fetch all loaders in parallel, but this option allows users to implement more advanced data flows including Remix single-fetch, middleware/context APIs, automatic loader caching, and more
Patch Changes
  • Updated dependencies:
    • @remix-run/router@1.16.0

v6.22.3

Compare Source

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

v6.22.2

Compare Source

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

v6.22.1

Compare Source

Patch Changes
  • Fix encoding/decoding issues with pre-encoded dynamic parameter values (#​11199)
  • Updated dependencies:
    • @remix-run/router@1.15.1

v6.22.0

Compare Source

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

v6.21.3

Compare Source

Patch Changes
  • Remove leftover unstable_ prefix from Blocker/BlockerFunction types (#​11187)

v6.21.2

Compare Source

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

v6.21.1

Compare Source

Patch Changes
  • Fix bug with route.lazy not working correctly on initial SPA load when v7_partialHydration is specified (#​11121)
  • Updated dependencies:
    • @remix-run/router@1.14.1

v6.21.0

Compare Source

Minor Changes
  • Add a new future.v7_relativeSplatPath flag 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:

    <BrowserRouter>
      <Routes>
        <Route path="/" element={<Home />} />
        <Route path="dashboard/*" element={<Dashboard />} />
      </Routes>
    </BrowserRouter>

    Any paths like /dashboard, /dashboard/team, /dashboard/projects will match the Dashboard route. The dashboard component itself can then render nested <Routes>:

    function Dashboard() {
      return (
        <div>
          <h2>Dashboard</h2>
          <nav>
            <Link to="/">Dashboard Home</Link>
            <Link to="team">Team</Link>
            <Link to="projects">Projects</Link>
          </nav>
    
          <Routes>
            <Route path="/" element={<DashboardHome />} />
            <Route path="team" element={<DashboardTeam />} />
            <Route path="projects" element={<DashboardProjects />} />
          </Routes>
        </div>
      );
    }

    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 Dashboard as 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 ".":

    // If we are on URL /dashboard/team, and we want to link to /dashboard/team:
    function DashboardTeam() {
      // ❌ This is broken and results in <a href="/dashboard">
      return <Link to=".">A broken link to the Current URL</Link>;
    
      // ✅ This is fixed but super unintuitive since we're already at /dashboard/team!
      return <Link to="./team">A broken link to the Current URL</Link>;
    }

    We've also introduced an issue that we can no longer move our DashboardTeam component 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:

    <BrowserRouter>
      <Routes>
        <Route path="dashboard">
          <Route path="*" element={<Dashboard />} />
        </Route>
      </Routes>
    </BrowserRouter>

    Now, a <Link to="."> and a <Link to=".."> inside the Dashboard component 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 route action if you the user doesn't specify a form action:

    let router = createBrowserRouter({
      path: "/dashboard",
      children: [
        {
          path: "*",
          action: dashboardAction,
          Component() {
            // ❌ This form is broken!  It throws a 405 error when it submits because
            // it tries to submit to /dashboard (without the splat value) and the parent
            // `/dashboard` route doesn't have an action
            return <Form method="post">...</Form>;
          },
        },
      ],
    });

    This is just a compounded issue from the above because the default location for a Form to 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:

    <BrowserRouter>
      <Routes>
        <Route path="dashboard">
          <Route index path="*" element={<Dashboard />} />
        </Route>
      </Routes>
    </BrowserRouter>
    
    function Dashboard() {
      return (
        <div>
          <h2>Dashboard</h2>
          <nav>
            <Link to="..">Dashboard Home</Link>
            <Link to="../team">Team</Link>
            <Link to="../projects">Projects</Link>
          </nav>
    
          <Routes>
            <Route path="/" element={<DashboardHome />} />
            <Route path="team" element={<DashboardTeam />} />
            <Route path="projects" element={<DashboardProjects />} />
          </Router>
        </div>
      );
    }

    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
  • Properly handle falsy error values in ErrorBoundary's (#​11071)
  • Updated dependencies:
    • @remix-run/router@1.14.0

v6.20.1

Compare Source

Patch Changes
  • Revert the useResolvedPath fix for splat routes due to a large number of applications that were relying on the buggy behavior (see #​11052 (comment)). We plan to re-introduce this fix behind a future flag in the next minor version. (#​11078)
  • Updated dependencies:
    • @remix-run/router@1.13.1

v6.20.0

Compare Source

Minor Changes
  • Export the PathParam type from the public API (#​10719)
Patch Changes
  • Fix bug with resolveTo in splat routes (#​11045)
    • This is a follow up to #​10983 to handle the few other code paths using getPathContributingMatches
    • This removes the UNSAFE_getPathContributingMatches export from @remix-run/router since we no longer need this in the react-router/react-router-dom layers
  • Updated dependencies:
    • @remix-run/router@1.13.0

v6.19.0

Compare Source

Minor Changes
  • Add unstable_flushSync option to useNavigate/useSumbit/fetcher.load/fetcher.submit to opt-out of React.startTransition and into ReactDOM.flushSync for state updates (#​11005)
  • Remove the unstable_ prefix from the useBlocker hook as it's been in use for enough time that we are confident in the API. We do not plan to remove the prefix from unstable_usePrompt due to differences in how browsers handle window.confirm that prevent React Router from guaranteeing consistent/correct behavior. (#​10991)
Patch Changes
  • Fix useActionData so it returns proper contextual action data and not any action data in the tree (#​11023)

  • Fix bug in useResolvedPath that would cause useResolvedPath(".") in a splat route to lose the splat portion of the URL path. (#​10983)

    • ⚠️ This fixes a quite long-standing bug specifically for "." paths inside a splat route which incorrectly dropped the splat portion of the URL. If you are relative routing via "." inside a splat route in your application you should double check that your logic is not relying on this buggy behavior and update accordingly.
  • Updated dependencies:

    • @remix-run/router@1.12.0

v6.18.0

Compare Source

Patch Changes
  • Fix the future prop on BrowserRouter, HashRouter and MemoryRouter so that it accepts a Partial<FutureConfig> instead of requiring all flags to be included. (#​10962)
  • Updated dependencies:
    • @remix-run/router@1.11.0

v6.17.0

Compare Source

Patch Changes
  • Fix RouterProvider future prop type to be a Partial<FutureConfig> so that not all flags must be specified (#​10900)
  • Updated dependencies:
    • @remix-run/router@1.10.0

v6.16.0

Compare Source

Minor Changes
  • In order to move towards stricter TypeScript support in the future, we're aiming to replace current usages of any with unknown on exposed typings for user-provided data. To do this in Remix v2 without introducing breaking changes in React Router v6, we have added generics to a number of shared types. These continue to default to any in React Router and are overridden with unknown in Remix. In React Router v7 we plan to move these to unknown as a breaking change. (#​10843)
    • Location now accepts a generic for the location.state value
    • ActionFunctionArgs/ActionFunction/LoaderFunctionArgs/LoaderFunction now accept a generic for the context parameter (only used in SSR usages via createStaticHandler)
    • The return type of useMatches (now exported as UIMatch) accepts generics for match.data and match.handle - both of which were already set to unknown
  • Move the @private class export ErrorResponse to an UNSAFE_ErrorResponseImpl export since it is an implementation detail and there should be no construction of ErrorResponse instances in userland. This frees us up to export a type ErrorResponse which correlates to an instance of the class via InstanceType. Userland code should only ever be using ErrorResponse as a type and should be type-narrowing via isRouteErrorResponse. (#​10811)
  • Export ShouldRevalidateFunctionArgs interface (#​10797)
  • Removed private/internal APIs only required for the Remix v1 backwards compatibility layer and no longer needed in Remix v2 (_isFetchActionRedirect, _hasFetcherDoneAnything) (#​10715)
Patch Changes
  • Updated dependencies:
    • @remix-run/router@1.9.0
remix-run/react-router (react-router-dom)

v6.30.1

Compare Source

v6.30.0

Compare Source

v6.29.0

Compare Source

v6.28.2

Compare Source

v6.28.1

Compare Source

v6.28.0

Compare Source

v6.27.0

Compare Source

v6.26.2

Compare Source

v6.26.1

Compare Source

v6.26.0

Compare Source

v6.25.1

Compare Source

v6.25.0

Compare Source

v6.24.1

Compare Source

v6.24.0

Compare Source

v6.23.1

Compare Source

v6.23.0

Compare Source

v6.22.3

Compare Source

v6.22.2

Compare Source

v6.22.1

Compare Source

v6.22.0

Compare Source

v6.21.3

Compare Source

v6.21.2

Compare Source

v6.21.1

Compare Source

v6.21.0

Compare Source

v6.20.1

Compare Source

v6.20.0

Compare Source

v6.19.0

Compare Source

v6.18.0

Compare Source

v6.17.0

Compare Source

v6.16.0

Compare Source

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

v6.30.0

Compare Source

Date: 2025-02-27

Minor Changes
  • Add fetcherKey as a parameter to patchRoutesOnNavigation (#​13109)
Patch Changes
  • Fix regression introduced in 6.29.0 via #​12169 that caused issues navigating to hash routes inside splat routes for applications using Lazy Route Discovery (patchRoutesOnNavigation) (#​13108)

Full Changelog: v6.29.0...v6.30.0

v6.29.0

Compare Source

Date: 2025-01-30

Minor Changes
  • Provide the request signal as a parameter to patchRoutesOnNavigation (#​12900)
    • This can be used to abort any manifest fetches if the in-flight navigation/fetcher is aborted
Patch Changes
  • Do not log v7 deprecation warnings in production builds (#​12794)
  • Properly bubble headers when throwing a data() result (#​12845)
  • Optimize route matching by skipping redundant matchRoutes calls when possible (#​12169)
  • Strip search parameters from patchRoutesOnNavigation path param for fetcher calls (#​12899)

Full Changelog: v6.28.2...v6.29.0

v6.28.2

Compare Source

Date: 2025-01-16

Patch Changes
  • Fix manual fetcher key usage when not opted into future.v7_fetcherPersist (#​12674)
  • Fix issue with fetcher data cleanup in the data layer on fetcher unmount (#​12674)

Full Changelog: v6.28.1...v6.28.2

v6.28.1

Compare Source

Date: 2024-12-20

Patch Changes
  • Allow users to opt out of v7 deprecation warnings by setting flags to false (#​12441)

Full Changelog: v6.28.0...v6.28.1

v6.28.0

Compare Source

Date: 2024-11-06

What's Changed
  • In preparation for v7 we've added deprecation warnings for any future flags that you have not yet opted into. Please use the flags to better prepare for eventually upgrading to v7.
Minor Changes
  • Log deprecation warnings for v7 flags (#​11750)
    • Add deprecation warnings to json/defer in favor of returning raw objects
      • These methods will be removed in React Router v7
Patch Changes
  • Update JSDoc URLs for new website structure (add /v6/ segment) (#​12141)

Full Changelog: v6.27.0...v6.28.0

v6.27.0

Compare Source

Date: 2024-10-11

What's Changed
Stabilized APIs

This release stabilizes a handful of "unstable" APIs in preparation for the pending React Router v7 release (see these posts for more info):

  • unstable_dataStrategydataStrategy (createBrowserRouter and friends) (Docs)
  • unstable_patchRoutesOnNavigationpatchRoutesOnNavigation (createBrowserRouter and friends) (Docs)
  • unstable_flushSyncflushSync (useSubmit, fetcher.load, fetcher.submit) (Docs)
  • unstable_viewTransitionviewTransition (<Link>, <Form>, useNavigate, useSubmit) (Docs)
Minor Changes
  • Stabilize the unstable_flushSync option for navigations and fetchers (#​11989)
  • Stabilize the unstable_viewTransition option for navigations and the corresponding unstable_useViewTransitionState hook (#​11989)
  • Stabilize unstable_dataStrategy (#​11974)
  • Stabilize unstable_patchRoutesOnNavigation (#​11973)
    • Add new PatchRoutesOnNavigationFunctionArgs type for convenience (#​11967)
Patch Changes
  • Fix bug when submitting to the current contextual route (parent route with an index child) when an ?index param already exists from a prior submission (#​12003)
  • Fix useFormAction bug - when removing ?index param it would not keep other non-Remix index params (#​12003)
  • Fix bug with fetchers not persisting preventScrollReset through redirects during concurrent fetches (#​11999)
  • Avoid unnecessary console.error on fetcher abort due to back-to-back revalidation calls (#​12050)
  • Fix bugs with partialHydration when hydrating with errors (#​12070)
  • Remove internal cache to fix issues with interrupted patchRoutesOnNavigation calls (#​12055)
    • ⚠️ This may be a breaking change if you were relying on this behavior in the unstable_ API
    • We used to cache in-progress calls to patchRoutesOnNavigation internally so that multiple navigations with the same start/end would only execute the function once and use the same promise
    • However, this approach was at odds with patch short circuiting if a navigation was interrupted (and the request.signal aborted) since the first invocation's patch would no-op
    • This cache also made some assumptions as to what a valid cache key might be - and is oblivious to any other application-state changes that may have occurred
    • So, the cache has been removed because in most cases, repeated calls to something like import() for async routes will already be cached automatically - and if not it's easy enough for users to implement this cache in userland
  • Remove internal discoveredRoutes FIFO queue from unstable_patchRoutesOnNavigation (#​11977)
    • ⚠️ This may be a breaking change if you were relying on this behavior in the unstable_ API
    • This was originally implemented as an optimization but it proved to be a bit too limiting
    • If you need this optimization you can implement your own cache inside patchRoutesOnNavigation
  • Fix types for RouteObject within PatchRoutesOnNavigationFunction's patch method so it doesn't expect agnostic route objects passed to patch (#​11967)
  • Expose errors thrown from patchRoutesOnNavigation directly to useRouteError instead of wrapping them in a 400 ErrorResponse instance (#​12111)

Full Changelog: v6.26.2...v6.27.0

v6.26.2

Compare Source

Date: 2024-09-09

Patch Changes
  • Update the unstable_dataStrategy API to allow for more advanced implementations (#​11943)
    • ⚠️ If you have already adopted unstable_dataStrategy, please review carefully as this includes breaking changes to this API
    • Rename unstable_HandlerResult to unstable_DataStrategyResult
    • Change the return signature of unstable_dataStrategy from a parallel array of unstable_DataStrategyResult[] (parallel to matches) to a key/value object of routeId => unstable_DataStrategyResult
      • This allows more advanced control over revalidation behavior because you can opt-into or out-of revalidating data that may not have been revalidated by default (via match.shouldLoad)
    • You should now return/throw a result from your handlerOverride instead of returning a DataStrategyResult
      • The return value (or thrown error) from your handlerOverride will be wrapped up into a DataStrategyResult and returned fromm match.resolve
      • Therefore, if you are aggregating the results of match.resolve() into a final results object you should not need to think about the DataStrategyResult type
      • If you are manually filling your results object from within your handlerOverride, then you will need to assign a DataStrategyResult as the value so React Router knows if it's a successful execution or an error (see examples in the documentation for details)
    • Added a new fetcherKey parameter to unstable_dataStrategy to allow differentiation from navigational and fetcher calls
  • Preserve opted-in view transitions through redirects (#​11925)
  • Preserve pending view transitions through a router revalidation call (#​11917)
  • Fix blocker usage when blocker.proceed is called quickly/synchronously (#​11930)

Full Changelog: v6.26.1...v6.26.2

v6.26.1

Compare Source

Date: 2024-08-15

Patch Changes
  • Rename unstable_patchRoutesOnMiss to unstable_patchRoutesOnNavigation to match new behavior (#​11888)
  • Update unstable_patchRoutesOnNavigation logic so that we call the method when we match routes with dynamic param or splat segments in case there exists a higher-scoring static route that we've not yet discovered (#​11883)
    • We also now leverage an internal FIFO queue of previous paths we've already called unstable_patchRoutesOnNavigation against so that we don't re-call on subsequent navigations to the same path

Full Changelog: v6.26.0...v6.26.1

v6.26.0

Compare Source

Date: 2024-08-01

Minor Changes
  • Add a new replace(url, init?) alternative to redirect(url, init?) that performs a history.replaceState instead of a history.pushState on client-side navigation redirects (#​11811)
  • Add a new unstable_data() API for usage with Remix Single Fetch (#​11836)
    • This API is not intended for direct usage in React Router SPA applications
    • It is primarily intended for usage with createStaticHandler.query() to allow loaders/actions to return arbitrary data along with custom status/headers without forcing the serialization of data into a Response instance
    • This allows for more advanced serialization tactics via unstable_dataStrategy such as serializing via turbo-stream in Remix Single Fetch
    • ⚠️ This removes the status field from HandlerResult
      • If you need to return a specific status from unstable_dataStrategy you should instead do so via unstable_data()
Patch Changes
  • Fix internal cleanup of interrupted fetchers to avoid invalid revalidations on navigations (#​11839)
  • Fix initial hydration behavior when using future.v7_partialHydration along with unstable_patchRoutesOnMiss (#​11838)
    • During initial hydration, router.state.matches will now include any partial matches so that we can render ancestor HydrateFallback components

Full Changelog: v6.25.1...v6.26.0

v6.25.1

Compare Source

Date: 2024-07-17

Patch Changes
  • Memoize some RouterProvider internals to reduce unnecessary re-renders (#​11803)

Full Changelog: v6.25.0...v6.25.1

v6.25.0

Compare Source

Date: 2024-07-16

What's Changed
Stabilized v7_skipActionErrorRevalidation

This release stabilizes the future.unstable_skipActionErrorRevalidation flag into future.v7_skipActionErrorRevalidation 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)
Patch Changes
  • Fix regression and properly decode paths inside useMatch so matches/params reflect decoded params (#​11789)
  • Fix bubbling of errors thrown from unstable_patchRoutesOnMiss (#​11786)
  • Fix hydration in SSR apps using unstable_patchRoutesOnMiss that matched a splat route on the server (#​11790)

Full Changelog: v6.24.1...v6.25.0

v6.24.1

Compare Source

Date: 2024-07-03

Patch Changes
  • Remove polyfill.io reference from warning message because the domain was sold and has since been determined to serve malware (#​11741)
  • Export NavLinkRenderProps type for easier typing of custom NavLink callback (#​11553)
  • When using future.v7_relativeSplatPath, properly resolve relative paths in splat routes that are children of pathless routes (#​11633)
  • Fog of War (unstable): Trigger a new router.routes identity/reflow during route patching (#​11740)
  • Fog of War (unstable): Fix initial matching when a splat route matches (#​11759)

Full Changelog: v6.24.0...v6.24.1

v6.24.0

Compare Source

Date: 2024-06-24

What's Changed
Lazy Route Discovery (a.k.a. "Fog of War")

We're really excited to release our new API for "Lazy Route Discovery" in v6.24.0! For some background information, please check out the original RFC. The tl;dr; is that ever since we introduced the Data APIs in v6.4 via <RouterProvider>, we've been a little bummed that one of the tradeoffs was the lack of a compelling code-splitting story mirroring what we had in the <BrowserRouter>/<Routes> apps. We took a baby-step towards improving that story with route.lazy in v6.9.0, but with v6.24.0 we've gone the rest of the way.

With "Fog of War", you can now load portions of the route tree lazily via the new unstable_patchRoutesOnMiss option passed to createBrowserRouter (and it's memory/hash counterparts). This gives you a way to hook into spots where React Router is unable to match a given path and patch new routes into the route tree during the navigation (or fetcher call).

Here's a very small example, but please refer to the documentation for more information and use cases:

const router = createBrowserRouter(
  [
    {
      id: "root",
      path: "/",
      Component: RootComponent,
    },
  ],
  {
    async unstable_patchRoutesOnMiss({ path, patch }) {
      if (path === "/a") {
        // Load the `a` route (`{ path: 'a', Component: A }`)
        let route = await getARoute();
        // Patch the `a` route in as a new child of the `root` route
        patch("root", [route]);
      }
    },
  },
);
Minor Changes
  • Add support for Lazy Route Discovery (a.k.a. "Fog of War") (#​11626)
Patch Changes
  • Fix fetcher.submit types - remove incorrect navigate/fetcherKey/unstable_viewTransition options because they are only relevant for useSubmit (#​11631)
  • Allow falsy location.state values passed to <StaticRouter> (#​11495)

Full Changelog: v6.23.1...v6.24.0

v6.23.1

Compare Source

Date: 2024-05-10

Patch Changes
  • Allow undefined to be resolved through <Await> (#​11513)
  • Add defensive document check when checking for document.startViewTransition availability (#​11544)
  • Change the react-router-dom/server import back t

Configuration

📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 Automerge: Enabled.

Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.

👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.


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

This PR was generated by Mend Renovate. View the repository job log.

@renovate
Copy link
Contributor Author

renovate bot commented Sep 13, 2023

⚠ Artifact update problem

Renovate failed to update an artifact related to this branch. You probably do not want to merge this PR as-is.

♻ Renovate will retry this branch, including artifacts, only when one of the following happens:

  • any of the package files in this branch needs updating, or
  • the branch becomes conflicted, or
  • you click the rebase/retry checkbox if found above, or
  • you rename this PR's title to start with "rebase!" to trigger it manually

The artifact failure details are included below:

File name: yarn.lock
[16:31:43.707] INFO (106): Installing tool yarn-slim@1.22.22...
[16:32:55.079] WARN (106): Npm error:
npm ERR! code UNABLE_TO_GET_ISSUER_CERT_LOCALLY
npm ERR! errno UNABLE_TO_GET_ISSUER_CERT_LOCALLY
npm ERR! request to https://registry.npmjs.org/yarn failed, reason: unable to get local issuer certificate

npm ERR! A complete log of this run can be found in:
npm ERR!     /tmp/containerbase-npm-vyPHZc/_logs/2024-04-23T16_31_44_566Z-debug-0.log
[16:32:55.108] FATAL (106): npm install command failed
    err: {
      "type": "Error",
      "message": "npm install command failed",
      "stack":
          Error: npm install command failed
              at InstallYarnSlimService.install (/snapshot/dist/containerbase-cli.js:53590:13)
              at async InstallYarnSlimService.install (/snapshot/dist/containerbase-cli.js:53888:5)
              at async InstallToolService.execute (/snapshot/dist/containerbase-cli.js:54326:11)
              at async InstallToolShortCommand.execute (/snapshot/dist/containerbase-cli.js:54543:14)
              at async InstallToolShortCommand.validateAndExecute (/snapshot/dist/containerbase-cli.js:2430:26)
              at async _Cli.run (/snapshot/dist/containerbase-cli.js:3543:22)
              at async _Cli.runExit (/snapshot/dist/containerbase-cli.js:3551:28)
              at async main (/snapshot/dist/containerbase-cli.js:54737:3)
    }
[16:32:55.989] INFO (106): Installed tool yarn-slim with errors in 1m 12.2s.

@renovate renovate bot force-pushed the renovate/react-router-monorepo branch from 3114c41 to dc98a1f Compare October 16, 2023 16:42
@renovate renovate bot changed the title fix(deps): update react-router monorepo to v6.16.0 fix(deps): update react-router monorepo to v6.17.0 Oct 16, 2023
@renovate renovate bot force-pushed the renovate/react-router-monorepo branch from dc98a1f to 4defcb8 Compare October 31, 2023 16:46
@renovate renovate bot changed the title fix(deps): update react-router monorepo to v6.17.0 fix(deps): update react-router monorepo to v6.18.0 Oct 31, 2023
@renovate renovate bot force-pushed the renovate/react-router-monorepo branch from 4defcb8 to 34d08fe Compare November 16, 2023 16:50
@renovate renovate bot changed the title fix(deps): update react-router monorepo to v6.18.0 fix(deps): update react-router monorepo to v6.19.0 Nov 16, 2023
@renovate renovate bot force-pushed the renovate/react-router-monorepo branch from 34d08fe to 51bf454 Compare November 22, 2023 20:03
@renovate renovate bot changed the title fix(deps): update react-router monorepo to v6.19.0 fix(deps): update react-router monorepo to v6.20.0 Nov 22, 2023
@renovate renovate bot force-pushed the renovate/react-router-monorepo branch from 51bf454 to 983b1f3 Compare December 1, 2023 20:03
@renovate renovate bot changed the title fix(deps): update react-router monorepo to v6.20.0 fix(deps): update react-router monorepo to v6.20.1 Dec 1, 2023
@renovate renovate bot force-pushed the renovate/react-router-monorepo branch from 983b1f3 to cd66f63 Compare December 13, 2023 23:09
@renovate renovate bot changed the title fix(deps): update react-router monorepo to v6.20.1 fix(deps): update react-router monorepo to v6.21.0 Dec 13, 2023
@renovate renovate bot force-pushed the renovate/react-router-monorepo branch from cd66f63 to ea76578 Compare December 21, 2023 19:04
@renovate renovate bot changed the title fix(deps): update react-router monorepo to v6.21.0 fix(deps): update react-router monorepo to v6.21.1 Dec 21, 2023
@renovate renovate bot force-pushed the renovate/react-router-monorepo branch from ea76578 to aff1ba2 Compare January 11, 2024 17:39
@renovate renovate bot changed the title fix(deps): update react-router monorepo to v6.21.1 fix(deps): update react-router monorepo to v6.21.2 Jan 11, 2024
@renovate renovate bot force-pushed the renovate/react-router-monorepo branch from aff1ba2 to 4c6688a Compare January 18, 2024 20:23
@renovate renovate bot changed the title fix(deps): update react-router monorepo to v6.21.2 fix(deps): update react-router monorepo to v6.21.3 Jan 18, 2024
@renovate renovate bot force-pushed the renovate/react-router-monorepo branch from 4c6688a to 029d2f1 Compare February 1, 2024 21:22
@renovate renovate bot changed the title fix(deps): update react-router monorepo to v6.21.3 fix(deps): update react-router monorepo to v6.22.0 Feb 1, 2024
@renovate renovate bot force-pushed the renovate/react-router-monorepo branch from 029d2f1 to 36784bd Compare February 16, 2024 22:35
@renovate renovate bot changed the title fix(deps): update react-router monorepo to v6.22.0 fix(deps): update react-router monorepo to v6.22.1 Feb 16, 2024
@renovate renovate bot force-pushed the renovate/react-router-monorepo branch from 36784bd to 80e66fe Compare February 28, 2024 23:17
@renovate renovate bot changed the title fix(deps): update react-router monorepo to v6.22.1 fix(deps): update react-router monorepo to v6.22.2 Feb 28, 2024
@renovate renovate bot force-pushed the renovate/react-router-monorepo branch from 80e66fe to f7f83d4 Compare March 7, 2024 16:16
@renovate renovate bot changed the title fix(deps): update react-router monorepo to v6.22.2 fix(deps): update react-router monorepo to v6.22.3 Mar 7, 2024
@renovate renovate bot force-pushed the renovate/react-router-monorepo branch from f7f83d4 to 9bd963d Compare April 23, 2024 16:33
@renovate renovate bot changed the title fix(deps): update react-router monorepo to v6.22.3 fix(deps): update react-router monorepo to v6.23.0 Apr 23, 2024
@renovate renovate bot force-pushed the renovate/react-router-monorepo branch from 9bd963d to 2dba31f Compare May 10, 2024 18:27
@renovate renovate bot force-pushed the renovate/react-router-monorepo branch from 7379626 to 2b55f0f Compare July 16, 2024 13:22
@renovate renovate bot changed the title fix(deps): update react-router monorepo to v6.24.1 fix(deps): update react-router monorepo Jul 16, 2024
@renovate renovate bot force-pushed the renovate/react-router-monorepo branch from 2b55f0f to 10b5221 Compare July 16, 2024 17:08
@renovate renovate bot changed the title fix(deps): update react-router monorepo fix(deps): update react-router monorepo to v6.25.0 Jul 16, 2024
@renovate renovate bot force-pushed the renovate/react-router-monorepo branch from 10b5221 to e5a8ac1 Compare July 17, 2024 17:41
@renovate renovate bot changed the title fix(deps): update react-router monorepo to v6.25.0 fix(deps): update react-router monorepo to v6.25.1 Jul 17, 2024
@renovate renovate bot force-pushed the renovate/react-router-monorepo branch from e5a8ac1 to 6f889ae Compare August 1, 2024 13:24
@renovate renovate bot changed the title fix(deps): update react-router monorepo to v6.25.1 fix(deps): update react-router monorepo Aug 1, 2024
@renovate renovate bot force-pushed the renovate/react-router-monorepo branch from 6f889ae to 8f56a96 Compare August 1, 2024 17:02
@renovate renovate bot changed the title fix(deps): update react-router monorepo fix(deps): update react-router monorepo to v6.26.0 Aug 1, 2024
@renovate renovate bot force-pushed the renovate/react-router-monorepo branch from 8f56a96 to 6204478 Compare August 15, 2024 16:05
@renovate renovate bot changed the title fix(deps): update react-router monorepo to v6.26.0 fix(deps): update react-router monorepo to v6.26.1 Aug 15, 2024
@renovate renovate bot force-pushed the renovate/react-router-monorepo branch from 6204478 to 759bae4 Compare September 9, 2024 15:33
@renovate renovate bot changed the title fix(deps): update react-router monorepo to v6.26.1 fix(deps): update react-router monorepo to v6.26.2 Sep 9, 2024
@renovate renovate bot force-pushed the renovate/react-router-monorepo branch from 759bae4 to ac18eed Compare October 11, 2024 19:25
@renovate renovate bot changed the title fix(deps): update react-router monorepo to v6.26.2 fix(deps): update react-router monorepo to v6.27.0 Oct 11, 2024
@renovate renovate bot force-pushed the renovate/react-router-monorepo branch from ac18eed to 3cb9315 Compare November 7, 2024 00:22
@renovate renovate bot changed the title fix(deps): update react-router monorepo to v6.27.0 fix(deps): update react-router monorepo to v6.28.0 Nov 7, 2024
@renovate renovate bot force-pushed the renovate/react-router-monorepo branch from 3cb9315 to 0cfd706 Compare December 20, 2024 23:13
@renovate renovate bot changed the title fix(deps): update react-router monorepo to v6.28.0 fix(deps): update react-router monorepo to v6.28.1 Dec 20, 2024
@renovate renovate bot force-pushed the renovate/react-router-monorepo branch from 0cfd706 to 4e073a6 Compare January 16, 2025 16:13
@renovate renovate bot changed the title fix(deps): update react-router monorepo to v6.28.1 fix(deps): update react-router monorepo to v6.28.2 Jan 16, 2025
@renovate renovate bot force-pushed the renovate/react-router-monorepo branch from 4e073a6 to df17ab4 Compare January 30, 2025 17:35
@renovate renovate bot changed the title fix(deps): update react-router monorepo to v6.28.2 fix(deps): update react-router monorepo to v6.29.0 Jan 30, 2025
@renovate renovate bot force-pushed the renovate/react-router-monorepo branch from df17ab4 to 5a9c25f Compare February 27, 2025 19:23
@renovate renovate bot changed the title fix(deps): update react-router monorepo to v6.29.0 fix(deps): update react-router monorepo to v6.30.0 Feb 27, 2025
@renovate renovate bot force-pushed the renovate/react-router-monorepo branch from 5a9c25f to ccf502f Compare May 20, 2025 22:21
@renovate renovate bot changed the title fix(deps): update react-router monorepo to v6.30.0 fix(deps): update react-router monorepo May 20, 2025
@renovate renovate bot force-pushed the renovate/react-router-monorepo branch from ccf502f to c7bb45c Compare August 12, 2025 07:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant