fix(deps): update react-router monorepo to v7.4.1 #144
Loading…
x
Reference in New Issue
Block a user
No description provided.
Delete Branch "renovate/react-router-monorepo"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
This PR contains the following updates:
7.2.0
->7.4.1
7.2.0
->7.4.1
Release Notes
remix-run/react-router (react-router)
v7.4.1
Compare Source
Patch Changes
Fix types on
unstable_MiddlewareFunction
to avoid type errors when a middleware doesn't return a value (#13311)Dedupe calls to
route.lazy
functions (#13260)Add support for
route.unstable_lazyMiddleware
function to allow lazy loading of middleware logic. (#13210)Breaking change for
unstable_middleware
consumersThe
route.unstable_middleware
property is no longer supported in the return value fromroute.lazy
. If you want to lazily load middleware, you must useroute.unstable_lazyMiddleware
.v7.4.0
Compare Source
Patch Changes
shouldRevalidate
behavior forclientLoader
-only routes inssr:true
apps (#13221)RequestHandler
loadContext
parameter type when middleware is enabled (#13204)Route.unstable_MiddlewareFunction
to have a return value ofResponse | undefined
instead ofResponse | void
becaue you should not return anything if you aren't returning theResponse
(#13199)next()
and are no longer leaking theMiddlewareError
implementation detail (#13180)v7.3.0
Compare Source
Minor Changes
Add
fetcherKey
as a parameter topatchRoutesOnNavigation
(#13061)fetcher
calls to undiscovered routes, this mismatch will trigger a document reload of the current pathPatch Changes
Skip resource route flow in dev server in SPA mode (#13113)
Support middleware on routes (unstable) (#12941)
Middleware is implemented behind a
future.unstable_middleware
flag. To enable, you must enable the flag and the types in yourreact-router-config.ts
file:⚠️ Middleware is unstable and should not be adopted in production. There is at least one known de-optimization in route module loading for
clientMiddleware
that we will be addressing this before a stable release.⚠️ Enabling middleware contains a breaking change to the
context
parameter passed to yourloader
/action
functions - see below for more information.Once enabled, routes can define an array of middleware functions that will run sequentially before route handlers run. These functions accept the same parameters as
loader
/action
plus an additionalnext
parameter to run the remaining data pipeline. This allows middlewares to perform logic before and after handlers execute.Here's a simple example of a client-side logging middleware that can be placed on the root route:
Note that in the above example, the
next
/middleware
functions don't return anything. This is by design as on the client there is no "response" to send over the network like there would be for middlewares running on the server. The data is all handled behind the scenes by the statefulrouter
.For a server-side middleware, the
next
function will return the HTTPResponse
that React Router will be sending across the wire, thus giving you a chance to make changes as needed. You may throw a new response to short circuit and respond immediately, or you may return a new or altered response to override the default returned bynext()
.You can throw a
redirect
from a middleware to short circuit any remaining processing:Note that in cases like this where you don't need to do any post-processing you don't need to call the
next
function or return aResponse
.Here's another example of using a server middleware to detect 404s and check the CMS for a redirect:
context
parameterWhen middleware is enabled, your application will use a different type of
context
parameter in your loaders and actions to provide better type safety. Instead ofAppLoadContext
,context
will now be an instance ofContextProvider
that you can use with type-safe contexts (similar toReact.createContext
):If you are using a custom server with a
getLoadContext
function, the return value for initial context values passed from the server adapter layer is no longer an object and should now return anunstable_InitialContext
(Map<RouterContext, unknown>
):Fix types for loaderData and actionData that contained
Record
s (#13139)UNSTABLE(BREAKING):
unstable_SerializesTo
added a way to register custom serialization types in Single Fetch for other library and framework authors like Apollo.It was implemented with branded type whose branded property that was made optional so that casting arbitrary values was easy:
However, this broke type inference in
loaderData
andactionData
for anyRecord
types as those would now (incorrectly) matchunstable_SerializesTo
.This affected all users, not just those that depended on
unstable_SerializesTo
.To fix this, the branded property of
unstable_SerializesTo
is marked as required instead of optional.For library and framework authors using
unstable_SerializesTo
, you may need to addas unknown
casts before casting tounstable_SerializesTo
.[REMOVE] Remove middleware depth logic and always call middlware for all matches (#13172)
Fix single fetch
_root.data
requests when abasename
is used (#12898)Add
context
support to client side data routers (unstable) (#12941)Your application
loader
andaction
functions on the client will now receive acontext
parameter. This is an instance ofunstable_RouterContextProvider
that you use with type-safe contexts (similar toReact.createContext
) and is most useful with the correspondingmiddleware
/clientMiddleware
API's:Similar to server-side requests, a fresh
context
will be created per navigation (orfetcher
call). If you have initial data you'd like to populate in the context for every request, you can provide anunstable_getContext
function at the root of your app:createBrowserRouter(routes, { unstable_getContext })
<HydratedRouter unstable_getContext>
This function should return an value of type
unstable_InitialContext
which is aMap<unstable_RouterContext, unknown>
of context's and initial values:remix-run/react-router (react-router-dom)
v7.4.1
Compare Source
Patch Changes
react-router@7.4.1
v7.4.0
Compare Source
Patch Changes
react-router@7.4.0
v7.3.0
Compare Source
Patch Changes
react-router@7.3.0
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.
🔕 Ignore: Close this PR and you won't be reminded about these updates again.
This PR has been generated by Renovate Bot.
4a806a2395
to99c6432dc3
fix(deps): update react-router monorepo to v7.4.0to fix(deps): update react-router monorepo to v7.4.1Checkout
From your project repository, check out a new branch and test the changes.