fix(deps): update react-router monorepo to v7 #58

Open
kjuulh wants to merge 1 commits from renovate/react-router-monorepo into main
Owner

This PR contains the following updates:

Package Type Update Change
react-router (source) dependencies major 6.28.0 -> 7.0.1
react-router-dom (source) dependencies major 6.28.0 -> 7.0.1

Release Notes

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

v7.0.1

Compare Source

v7.0.0

Compare Source

Major Changes
  • Remove the original defer implementation in favor of using raw promises via single fetch and turbo-stream. This removes these exports from React Router: (#​11744)

    • defer
    • AbortedDeferredError
    • type TypedDeferredData
    • UNSAFE_DeferredData
    • UNSAFE_DEFERRED_SYMBOL,
    • Collapse @remix-run/router into react-router (#​11505)
    • Collapse react-router-dom into react-router
    • Collapse @remix-run/server-runtime into react-router
    • Collapse @remix-run/testing into react-router
  • Remove single_fetch future flag. (#​11522)

  • Drop support for Node 16, React Router SSR now requires Node 18 or higher (#​11391)

  • Remove future.v7_startTransition flag (#​11696)

    • Expose the underlying router promises from the following APIs for compsition in React 19 APIs: (#​11521)
      • useNavigate()
      • useSubmit
      • useFetcher().load
      • useFetcher().submit
      • useRevalidator.revalidate
  • Remove future.v7_normalizeFormMethod future flag (#​11697)

  • For Remix consumers migrating to React Router, the crypto global from the Web Crypto API is now required when using cookie and session APIs. This means that the following APIs are provided from react-router rather than platform-specific packages: (#​11837)

    • createCookie
    • createCookieSessionStorage
    • createMemorySessionStorage
    • createSessionStorage

    For consumers running older versions of Node, the installGlobals function from @remix-run/node has been updated to define globalThis.crypto, using Node's require('node:crypto').webcrypto implementation.

    Since platform-specific packages no longer need to implement this API, the following low-level APIs have been removed:

    • createCookieFactory
    • createSessionStorageFactory
    • createCookieSessionStorageFactory
    • createMemorySessionStorageFactory
  • Imports/Exports cleanup (#​11840)

    • Removed the following exports that were previously public API from @remix-run/router
      • types
        • AgnosticDataIndexRouteObject
        • AgnosticDataNonIndexRouteObject
        • AgnosticDataRouteMatch
        • AgnosticDataRouteObject
        • AgnosticIndexRouteObject
        • AgnosticNonIndexRouteObject
        • AgnosticRouteMatch
        • AgnosticRouteObject
        • TrackedPromise
        • unstable_AgnosticPatchRoutesOnMissFunction
        • Action -> exported as NavigationType via react-router
        • Router exported as DataRouter to differentiate from RR's <Router>
      • API
        • getToPathname (@private)
        • joinPaths (@private)
        • normalizePathname (@private)
        • resolveTo (@private)
        • stripBasename (@private)
        • createBrowserHistory -> in favor of createBrowserRouter
        • createHashHistory -> in favor of createHashRouter
        • createMemoryHistory -> in favor of createMemoryRouter
        • createRouter
        • createStaticHandler -> in favor of wrapper createStaticHandler in RR Dom
        • getStaticContextFromError
    • Removed the following exports that were previously public API from react-router
      • Hash
      • Pathname
      • Search
  • update minimum node version to 18 (#​11690)

  • Remove future.v7_prependBasename from the ionternalized @remix-run/router package (#​11726)

  • Migrate Remix type generics to React Router (#​12180)

    • These generics are provided for Remix v2 migration purposes
    • These generics and the APIs they exist on should be considered informally deprecated in favor of the new Route.* types
    • Anyone migrating from React Router v6 should probably not leverage these new generics and should migrate straight to the Route.* types
    • For React Router v6 users, these generics are new and should not impact your app, with one exception
      • useFetcher previously had an optional generic (used primarily by Remix v2) that expected the data type
      • This has been updated in v7 to expect the type of the function that generates the data (i.e., typeof loader/typeof action)
      • Therefore, you should update your usages:
        • useFetcher<LoaderData>()
        • useFetcher<typeof loader>()
  • Remove future.v7_throwAbortReason from internalized @remix-run/router package (#​11728)

  • Add exports field to all packages (#​11675)

  • node package no longer re-exports from react-router (#​11702)

  • renamed RemixContext to FrameworkContext (#​11705)

  • updates the minimum React version to 18 (#​11689)

  • PrefetchPageDescriptor replaced by PageLinkDescriptor (#​11960)

    • Consolidate types previously duplicated across @remix-run/router, @remix-run/server-runtime, and @remix-run/react now that they all live in react-router (#​12177)
      • Examples: LoaderFunction, LoaderFunctionArgs, ActionFunction, ActionFunctionArgs, DataFunctionArgs, RouteManifest, LinksFunction, Route, EntryRoute
      • The RouteManifest type used by the "remix" code is now slightly stricter because it is using the former @remix-run/router RouteManifest
        • Record<string, Route> -> Record<string, Route | undefined>
      • Removed AppData type in favor of inlining unknown in the few locations it was used
      • Removed ServerRuntimeMeta* types in favor of the Meta* types they were duplicated from
    • Remove the future.v7_partialHydration flag (#​11725)
      • This also removes the <RouterProvider fallbackElement> prop
        • To migrate, move the fallbackElement to a hydrateFallbackElement/HydrateFallback on your root route
      • Also worth nothing there is a related breaking changer with this future flag:
        • Without future.v7_partialHydration (when using fallbackElement), state.navigation was populated during the initial load
        • With future.v7_partialHydration, state.navigation remains in an "idle" state during the initial load
  • Remove v7_relativeSplatPath future flag (#​11695)

  • Drop support for Node 18, update minimum Node vestion to 20 (#​12171)

    • Remove installGlobals() as this should no longer be necessary
  • Remove remaining future flags (#​11820)

    • React Router v7_skipActionErrorRevalidation
    • Remix v3_fetcherPersist, v3_relativeSplatPath, v3_throwAbortReason
  • rename createRemixStub to createRoutesStub (#​11692)

  • Remove @remix-run/router deprecated detectErrorBoundary option in favor of mapRouteProperties (#​11751)

  • Add react-router/dom subpath export to properly enable react-dom as an optional peerDependency (#​11851)

    • This ensures that we don't blindly import ReactDOM from "react-dom" in <RouterProvider> in order to access ReactDOM.flushSync(), since that would break createMemoryRouter use cases in non-DOM environments
    • DOM environments should import from react-router/dom to get the proper component that makes ReactDOM.flushSync() available:
      • If you are using the Vite plugin, use this in your entry.client.tsx:
        • import { HydratedRouter } from 'react-router/dom'
      • If you are not using the Vite plugin and are manually calling createBrowserRouter/createHashRouter:
        • import { RouterProvider } from "react-router/dom"
  • Remove future.v7_fetcherPersist flag (#​11731)

  • Update cookie dependency to ^1.0.1 - please see the release notes for any breaking changes (#​12172)

Minor Changes
    • Add support for prerender config in the React Router vite plugin, to support existing SSG use-cases (#​11539)
      • You can use the prerender config to pre-render your .html and .data files at build time and then serve them statically at runtime (either from a running server or a CDN)
      • prerender can either be an array of string paths, or a function (sync or async) that returns an array of strings so that you can dynamically generate the paths by talking to your CMS, etc.
    // react-router.config.ts
    import type { Config } from "@&#8203;react-router/dev/config";
    
    export default {
      async prerender() {
        let slugs = await fakeGetSlugsFromCms();
        // Prerender these paths into `.html` files at build time, and `.data`
        // files if they have loaders
        return ["/", "/about", ...slugs.map((slug) => `/product/${slug}`)];
      },
    } satisfies Config;
    
    async function fakeGetSlugsFromCms() {
      await new Promise((r) => setTimeout(r, 1000));
      return ["shirt", "hat"];
    }
    
  • Params, loader data, and action data as props for route component exports (#​11961)

    export default function Component({ params, loaderData, actionData }) {}
    
    export function HydrateFallback({ params }) {}
    export function ErrorBoundary({ params, loaderData, actionData }) {}
    
  • Remove duplicate RouterProvider impliementations (#​11679)

  • Typesafety improvements (#​12019)

    React Router now generates types for each of your route modules.
    You can access those types by importing them from ./+types.<route filename without extension>.
    For example:

    // app/routes/product.tsx
    import type * as Route from "./+types.product";
    
    export function loader({ params }: Route.LoaderArgs) {}
    
    export default function Component({ loaderData }: Route.ComponentProps) {}
    

    This initial implementation targets type inference for:

    • Params : Path parameters from your routing config in routes.ts including file-based routing
    • LoaderData : Loader data from loader and/or clientLoader within your route module
    • ActionData : Action data from action and/or clientAction within your route module

    In the future, we plan to add types for the rest of the route module exports: meta, links, headers, shouldRevalidate, etc.
    We also plan to generate types for typesafe Links:

    <Link to="/products/:id" params={{ id: 1 }} />
    //        ^^^^^^^^^^^^^          ^^^^^^^^^
    // typesafe `to` and `params` based on the available routes in your app
    

    Check out our docs for more:

  • Stabilize unstable_dataStrategy (#​11969)

  • Stabilize unstable_patchRoutesOnNavigation (#​11970)

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

v7.0.1

Compare Source

Patch Changes
  • Updated dependencies:
    • react-router@7.0.1

v7.0.0

Compare Source

Major Changes
  • Remove the original defer implementation in favor of using raw promises via single fetch and turbo-stream. This removes these exports from React Router: (#​11744)

    • defer
    • AbortedDeferredError
    • type TypedDeferredData
    • UNSAFE_DeferredData
    • UNSAFE_DEFERRED_SYMBOL,
  • Use createRemixRouter/RouterProvider in entry.client instead of RemixBrowser (#​11469)

  • Remove single_fetch future flag. (#​11522)

  • Remove future.v7_startTransition flag (#​11696)

  • Remove future.v7_normalizeFormMethod future flag (#​11697)

  • Allow returning undefined from actions and loaders (#​11680)

  • update minimum node version to 18 (#​11690)

  • Remove future.v7_prependBasename from the ionternalized @remix-run/router package (#​11726)

  • Remove future.v7_throwAbortReason from internalized @remix-run/router package (#​11728)

  • Add exports field 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_partialHydration flag (#​11725)
      • This also removes the <RouterProvider fallbackElement> prop
        • To migrate, move the fallbackElement to a hydrateFallbackElement/HydrateFallback on your root route
      • Also worth nothing there is a related breaking changer with this future flag:
        • Without future.v7_partialHydration (when using fallbackElement), state.navigation was populated during the initial load
        • With future.v7_partialHydration, state.navigation remains in an "idle" state during the initial load
  • Remove future.v7_fetcherPersist flag (#​11731)

Minor Changes
  • Add prefetching support to Link/NavLink when using Remix SSR (#​11402)
  • Enhance ScrollRestoration so 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 proper window variables (__remixContext, __remixManifest, __remixRouteModules), you don't need to pass a router prop and RouterProvider will create the router for you internally. (#​11396) (#​11400)
Patch Changes
  • Memoize some RouterProvider internals to reduce uneccesary re-renders (#​11817)
  • Updated dependencies:
    • react-router@7.0.0

Configuration

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

🚦 Automerge: Enabled.

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 Renovate Bot.

This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [react-router](https://github.com/remix-run/react-router) ([source](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router)) | dependencies | major | [`6.28.0` -> `7.0.1`](https://renovatebot.com/diffs/npm/react-router/6.28.0/7.0.1) | | [react-router-dom](https://github.com/remix-run/react-router) ([source](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-dom)) | dependencies | major | [`6.28.0` -> `7.0.1`](https://renovatebot.com/diffs/npm/react-router-dom/6.28.0/7.0.1) | --- ### Release Notes <details> <summary>remix-run/react-router (react-router)</summary> ### [`v7.0.1`](https://github.com/remix-run/react-router/blob/HEAD/packages/react-router/CHANGELOG.md#701) [Compare Source](https://github.com/remix-run/react-router/compare/react-router@7.0.0...react-router@7.0.1) ### [`v7.0.0`](https://github.com/remix-run/react-router/blob/HEAD/packages/react-router/CHANGELOG.md#700) [Compare Source](https://github.com/remix-run/react-router/compare/react-router@6.28.0...react-router@7.0.0) ##### Major Changes - Remove the original `defer` implementation in favor of using raw promises via single fetch and `turbo-stream`. This removes these exports from React Router: ([#&#8203;11744](https://github.com/remix-run/react-router/pull/11744)) - `defer` - `AbortedDeferredError` - `type TypedDeferredData` - `UNSAFE_DeferredData` - `UNSAFE_DEFERRED_SYMBOL`, - - Collapse `@remix-run/router` into `react-router` ([#&#8203;11505](https://github.com/remix-run/react-router/pull/11505)) - Collapse `react-router-dom` into `react-router` - Collapse `@remix-run/server-runtime` into `react-router` - Collapse `@remix-run/testing` into `react-router` - Remove single_fetch future flag. ([#&#8203;11522](https://github.com/remix-run/react-router/pull/11522)) - Drop support for Node 16, React Router SSR now requires Node 18 or higher ([#&#8203;11391](https://github.com/remix-run/react-router/pull/11391)) - Remove `future.v7_startTransition` flag ([#&#8203;11696](https://github.com/remix-run/react-router/pull/11696)) - - Expose the underlying router promises from the following APIs for compsition in React 19 APIs: ([#&#8203;11521](https://github.com/remix-run/react-router/pull/11521)) - `useNavigate()` - `useSubmit` - `useFetcher().load` - `useFetcher().submit` - `useRevalidator.revalidate` - Remove `future.v7_normalizeFormMethod` future flag ([#&#8203;11697](https://github.com/remix-run/react-router/pull/11697)) - For Remix consumers migrating to React Router, the `crypto` global from the [Web Crypto API](https://developer.mozilla.org/en-US/docs/Web/API/Web_Crypto_API) is now required when using cookie and session APIs. This means that the following APIs are provided from `react-router` rather than platform-specific packages: ([#&#8203;11837](https://github.com/remix-run/react-router/pull/11837)) - `createCookie` - `createCookieSessionStorage` - `createMemorySessionStorage` - `createSessionStorage` For consumers running older versions of Node, the `installGlobals` function from `@remix-run/node` has been updated to define `globalThis.crypto`, using [Node's `require('node:crypto').webcrypto` implementation.](https://nodejs.org/api/webcrypto.html) Since platform-specific packages no longer need to implement this API, the following low-level APIs have been removed: - `createCookieFactory` - `createSessionStorageFactory` - `createCookieSessionStorageFactory` - `createMemorySessionStorageFactory` - Imports/Exports cleanup ([#&#8203;11840](https://github.com/remix-run/react-router/pull/11840)) - Removed the following exports that were previously public API from `@remix-run/router` - types - `AgnosticDataIndexRouteObject` - `AgnosticDataNonIndexRouteObject` - `AgnosticDataRouteMatch` - `AgnosticDataRouteObject` - `AgnosticIndexRouteObject` - `AgnosticNonIndexRouteObject` - `AgnosticRouteMatch` - `AgnosticRouteObject` - `TrackedPromise` - `unstable_AgnosticPatchRoutesOnMissFunction` - `Action` -> exported as `NavigationType` via `react-router` - `Router` exported as `DataRouter` to differentiate from RR's `<Router>` - API - `getToPathname` (`@private`) - `joinPaths` (`@private`) - `normalizePathname` (`@private`) - `resolveTo` (`@private`) - `stripBasename` (`@private`) - `createBrowserHistory` -> in favor of `createBrowserRouter` - `createHashHistory` -> in favor of `createHashRouter` - `createMemoryHistory` -> in favor of `createMemoryRouter` - `createRouter` - `createStaticHandler` -> in favor of wrapper `createStaticHandler` in RR Dom - `getStaticContextFromError` - Removed the following exports that were previously public API from `react-router` - `Hash` - `Pathname` - `Search` - update minimum node version to 18 ([#&#8203;11690](https://github.com/remix-run/react-router/pull/11690)) - Remove `future.v7_prependBasename` from the ionternalized `@remix-run/router` package ([#&#8203;11726](https://github.com/remix-run/react-router/pull/11726)) - Migrate Remix type generics to React Router ([#&#8203;12180](https://github.com/remix-run/react-router/pull/12180)) - These generics are provided for Remix v2 migration purposes - These generics and the APIs they exist on should be considered informally deprecated in favor of the new `Route.*` types - Anyone migrating from React Router v6 should probably not leverage these new generics and should migrate straight to the `Route.*` types - For React Router v6 users, these generics are new and should not impact your app, with one exception - `useFetcher` previously had an optional generic (used primarily by Remix v2) that expected the data type - This has been updated in v7 to expect the type of the function that generates the data (i.e., `typeof loader`/`typeof action`) - Therefore, you should update your usages: - ❌ `useFetcher<LoaderData>()` - ✅ `useFetcher<typeof loader>()` - Remove `future.v7_throwAbortReason` from internalized `@remix-run/router` package ([#&#8203;11728](https://github.com/remix-run/react-router/pull/11728)) - Add `exports` field to all packages ([#&#8203;11675](https://github.com/remix-run/react-router/pull/11675)) - node package no longer re-exports from react-router ([#&#8203;11702](https://github.com/remix-run/react-router/pull/11702)) - renamed RemixContext to FrameworkContext ([#&#8203;11705](https://github.com/remix-run/react-router/pull/11705)) - updates the minimum React version to 18 ([#&#8203;11689](https://github.com/remix-run/react-router/pull/11689)) - PrefetchPageDescriptor replaced by PageLinkDescriptor ([#&#8203;11960](https://github.com/remix-run/react-router/pull/11960)) - - Consolidate types previously duplicated across `@remix-run/router`, `@remix-run/server-runtime`, and `@remix-run/react` now that they all live in `react-router` ([#&#8203;12177](https://github.com/remix-run/react-router/pull/12177)) - Examples: `LoaderFunction`, `LoaderFunctionArgs`, `ActionFunction`, `ActionFunctionArgs`, `DataFunctionArgs`, `RouteManifest`, `LinksFunction`, `Route`, `EntryRoute` - The `RouteManifest` type used by the "remix" code is now slightly stricter because it is using the former `@remix-run/router` `RouteManifest` - `Record<string, Route> -> Record<string, Route | undefined>` - Removed `AppData` type in favor of inlining `unknown` in the few locations it was used - Removed `ServerRuntimeMeta*` types in favor of the `Meta*` types they were duplicated from - - Remove the `future.v7_partialHydration` flag ([#&#8203;11725](https://github.com/remix-run/react-router/pull/11725)) - This also removes the `<RouterProvider fallbackElement>` prop - To migrate, move the `fallbackElement` to a `hydrateFallbackElement`/`HydrateFallback` on your root route - Also worth nothing there is a related breaking changer with this future flag: - Without `future.v7_partialHydration` (when using `fallbackElement`), `state.navigation` was populated during the initial load - With `future.v7_partialHydration`, `state.navigation` remains in an `"idle"` state during the initial load - Remove `v7_relativeSplatPath` future flag ([#&#8203;11695](https://github.com/remix-run/react-router/pull/11695)) - Drop support for Node 18, update minimum Node vestion to 20 ([#&#8203;12171](https://github.com/remix-run/react-router/pull/12171)) - Remove `installGlobals()` as this should no longer be necessary - Remove remaining future flags ([#&#8203;11820](https://github.com/remix-run/react-router/pull/11820)) - React Router `v7_skipActionErrorRevalidation` - Remix `v3_fetcherPersist`, `v3_relativeSplatPath`, `v3_throwAbortReason` - rename createRemixStub to createRoutesStub ([#&#8203;11692](https://github.com/remix-run/react-router/pull/11692)) - Remove `@remix-run/router` deprecated `detectErrorBoundary` option in favor of `mapRouteProperties` ([#&#8203;11751](https://github.com/remix-run/react-router/pull/11751)) - Add `react-router/dom` subpath export to properly enable `react-dom` as an optional `peerDependency` ([#&#8203;11851](https://github.com/remix-run/react-router/pull/11851)) - This ensures that we don't blindly `import ReactDOM from "react-dom"` in `<RouterProvider>` in order to access `ReactDOM.flushSync()`, since that would break `createMemoryRouter` use cases in non-DOM environments - DOM environments should import from `react-router/dom` to get the proper component that makes `ReactDOM.flushSync()` available: - If you are using the Vite plugin, use this in your `entry.client.tsx`: - `import { HydratedRouter } from 'react-router/dom'` - If you are not using the Vite plugin and are manually calling `createBrowserRouter`/`createHashRouter`: - `import { RouterProvider } from "react-router/dom"` - Remove `future.v7_fetcherPersist` flag ([#&#8203;11731](https://github.com/remix-run/react-router/pull/11731)) - Update `cookie` dependency to `^1.0.1` - please see the [release notes](https://github.com/jshttp/cookie/releases) for any breaking changes ([#&#8203;12172](https://github.com/remix-run/react-router/pull/12172)) ##### Minor Changes - - Add support for `prerender` config in the React Router vite plugin, to support existing SSG use-cases ([#&#8203;11539](https://github.com/remix-run/react-router/pull/11539)) - You can use the `prerender` config to pre-render your `.html` and `.data` files at build time and then serve them statically at runtime (either from a running server or a CDN) - `prerender` can either be an array of string paths, or a function (sync or async) that returns an array of strings so that you can dynamically generate the paths by talking to your CMS, etc. ```ts // react-router.config.ts import type { Config } from "@&#8203;react-router/dev/config"; export default { async prerender() { let slugs = await fakeGetSlugsFromCms(); // Prerender these paths into `.html` files at build time, and `.data` // files if they have loaders return ["/", "/about", ...slugs.map((slug) => `/product/${slug}`)]; }, } satisfies Config; async function fakeGetSlugsFromCms() { await new Promise((r) => setTimeout(r, 1000)); return ["shirt", "hat"]; } ``` - Params, loader data, and action data as props for route component exports ([#&#8203;11961](https://github.com/remix-run/react-router/pull/11961)) ```tsx export default function Component({ params, loaderData, actionData }) {} export function HydrateFallback({ params }) {} export function ErrorBoundary({ params, loaderData, actionData }) {} ``` - Remove duplicate `RouterProvider` impliementations ([#&#8203;11679](https://github.com/remix-run/react-router/pull/11679)) - ### Typesafety improvements ([#&#8203;12019](https://github.com/remix-run/react-router/pull/12019)) React Router now generates types for each of your route modules. You can access those types by importing them from `./+types.<route filename without extension>`. For example: ```ts // app/routes/product.tsx import type * as Route from "./+types.product"; export function loader({ params }: Route.LoaderArgs) {} export default function Component({ loaderData }: Route.ComponentProps) {} ``` This initial implementation targets type inference for: - `Params` : Path parameters from your routing config in `routes.ts` including file-based routing - `LoaderData` : Loader data from `loader` and/or `clientLoader` within your route module - `ActionData` : Action data from `action` and/or `clientAction` within your route module In the future, we plan to add types for the rest of the route module exports: `meta`, `links`, `headers`, `shouldRevalidate`, etc. We also plan to generate types for typesafe `Link`s: ```tsx <Link to="/products/:id" params={{ id: 1 }} /> // ^^^^^^^^^^^^^ ^^^^^^^^^ // typesafe `to` and `params` based on the available routes in your app ``` Check out our docs for more: - [*Explanations > Type Safety*](https://reactrouter.com/dev/guides/explanation/type-safety) - [*How-To > Setting up type safety*](https://reactrouter.com/dev/guides/how-to/setting-up-type-safety) - Stabilize `unstable_dataStrategy` ([#&#8203;11969](https://github.com/remix-run/react-router/pull/11969)) - Stabilize `unstable_patchRoutesOnNavigation` ([#&#8203;11970](https://github.com/remix-run/react-router/pull/11970)) ##### Patch Changes - No changes ([`506329c4e`](https://github.com/remix-run/react-router/commit/506329c4e2e7aba9837cbfa44df6103b49423745)) - chore: re-enable development warnings through a `development` exports condition. ([#&#8203;12269](https://github.com/remix-run/react-router/pull/12269)) - Remove unstable upload handler. ([#&#8203;12015](https://github.com/remix-run/react-router/pull/12015)) - Remove unneeded dependency on [@&#8203;web3-storage/multipart-parser](https://github.com/web3-storage/multipart-parser) ([#&#8203;12274](https://github.com/remix-run/react-router/pull/12274)) - Fix redirects returned from loaders/actions using `data()` ([#&#8203;12021](https://github.com/remix-run/react-router/pull/12021)) - fix(react-router): (v7) fix static prerender of non-ascii characters ([#&#8203;12161](https://github.com/remix-run/react-router/pull/12161)) - Replace `substr` with `substring` ([#&#8203;12080](https://github.com/remix-run/react-router/pull/12080)) - Remove the deprecated `json` utility ([#&#8203;12146](https://github.com/remix-run/react-router/pull/12146)) - You can use [`Response.json`](https://developer.mozilla.org/en-US/docs/Web/API/Response/json_static) if you still need to construct JSON responses in your app - Remove unneeded dependency on source-map ([#&#8203;12275](https://github.com/remix-run/react-router/pull/12275)) </details> <details> <summary>remix-run/react-router (react-router-dom)</summary> ### [`v7.0.1`](https://github.com/remix-run/react-router/blob/HEAD/packages/react-router-dom/CHANGELOG.md#701) [Compare Source](https://github.com/remix-run/react-router/compare/react-router-dom@7.0.0...react-router-dom@7.0.1) ##### Patch Changes - Updated dependencies: - `react-router@7.0.1` ### [`v7.0.0`](https://github.com/remix-run/react-router/blob/HEAD/packages/react-router-dom/CHANGELOG.md#700) [Compare Source](https://github.com/remix-run/react-router/compare/react-router-dom@6.28.0...react-router-dom@7.0.0) ##### Major Changes - Remove the original `defer` implementation in favor of using raw promises via single fetch and `turbo-stream`. This removes these exports from React Router: ([#&#8203;11744](https://github.com/remix-run/react-router/pull/11744)) - `defer` - `AbortedDeferredError` - `type TypedDeferredData` - `UNSAFE_DeferredData` - `UNSAFE_DEFERRED_SYMBOL`, - Use `createRemixRouter`/`RouterProvider` in `entry.client` instead of `RemixBrowser` ([#&#8203;11469](https://github.com/remix-run/react-router/pull/11469)) - Remove single_fetch future flag. ([#&#8203;11522](https://github.com/remix-run/react-router/pull/11522)) - Remove `future.v7_startTransition` flag ([#&#8203;11696](https://github.com/remix-run/react-router/pull/11696)) - Remove `future.v7_normalizeFormMethod` future flag ([#&#8203;11697](https://github.com/remix-run/react-router/pull/11697)) - Allow returning `undefined` from actions and loaders ([#&#8203;11680](https://github.com/remix-run/react-router/pull/11680)) - update minimum node version to 18 ([#&#8203;11690](https://github.com/remix-run/react-router/pull/11690)) - Remove `future.v7_prependBasename` from the ionternalized `@remix-run/router` package ([#&#8203;11726](https://github.com/remix-run/react-router/pull/11726)) - Remove `future.v7_throwAbortReason` from internalized `@remix-run/router` package ([#&#8203;11728](https://github.com/remix-run/react-router/pull/11728)) - Add `exports` field to all packages ([#&#8203;11675](https://github.com/remix-run/react-router/pull/11675)) - node package no longer re-exports from react-router ([#&#8203;11702](https://github.com/remix-run/react-router/pull/11702)) - updates the minimum React version to 18 ([#&#8203;11689](https://github.com/remix-run/react-router/pull/11689)) - - Remove the `future.v7_partialHydration` flag ([#&#8203;11725](https://github.com/remix-run/react-router/pull/11725)) - This also removes the `<RouterProvider fallbackElement>` prop - To migrate, move the `fallbackElement` to a `hydrateFallbackElement`/`HydrateFallback` on your root route - Also worth nothing there is a related breaking changer with this future flag: - Without `future.v7_partialHydration` (when using `fallbackElement`), `state.navigation` was populated during the initial load - With `future.v7_partialHydration`, `state.navigation` remains in an `"idle"` state during the initial load - Remove `future.v7_fetcherPersist` flag ([#&#8203;11731](https://github.com/remix-run/react-router/pull/11731)) ##### Minor Changes - Add prefetching support to `Link`/`NavLink` when using Remix SSR ([#&#8203;11402](https://github.com/remix-run/react-router/pull/11402)) - Enhance `ScrollRestoration` so it can restore properly on an SSR'd document load ([#&#8203;11401](https://github.com/remix-run/react-router/pull/11401)) - Add built-in Remix-style hydration support to `RouterProvider`. When running from a Remix-SSR'd HTML payload with the proper `window` variables (`__remixContext`, `__remixManifest`, `__remixRouteModules`), you don't need to pass a `router` prop and `RouterProvider` will create the `router` for you internally. ([#&#8203;11396](https://github.com/remix-run/react-router/pull/11396)) ([#&#8203;11400](https://github.com/remix-run/react-router/pull/11400)) ##### Patch Changes - Memoize some `RouterProvider` internals to reduce uneccesary re-renders ([#&#8203;11817](https://github.com/remix-run/react-router/pull/11817)) - Updated dependencies: - `react-router@7.0.0` </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Enabled. ♻ **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. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy40MjQuMyIsInVwZGF0ZWRJblZlciI6IjM3LjQyNC4zIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->
kjuulh added 1 commit 2024-11-23 02:06:38 +01:00
fix(deps): update react-router monorepo to v7
Some checks reported errors
continuous-integration/drone/push Build encountered an error
continuous-integration/drone/pr Build encountered an error
16ea4876df
kjuulh scheduled this pull request to auto merge when all checks succeed 2024-11-23 02:06:38 +01:00
Some checks reported errors
continuous-integration/drone/push Build encountered an error
continuous-integration/drone/pr Build encountered an error
This pull request can be merged automatically.
You are not authorized to merge this pull request.

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin renovate/react-router-monorepo:renovate/react-router-monorepo
git checkout renovate/react-router-monorepo
Sign in to join this conversation.
No reviewers
No Label
No Milestone
No project
No Assignees
1 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: kjuulh/backstage#58
No description provided.