This repository was archived by the owner on Jan 12, 2026. It is now read-only.
Open
Conversation
51a7501 to
15a596e
Compare
b7919b4 to
6b307b5
Compare
cafb42d to
eb7ccb9
Compare
eb7ccb9 to
8f843d0
Compare
8f843d0 to
e9369d3
Compare
dc97133 to
6c99861
Compare
6c99861 to
d760dc2
Compare
d760dc2 to
851e205
Compare
851e205 to
fe5f42b
Compare
3afb702 to
ca30376
Compare
ca30376 to
8a62d86
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
7.9.3→7.12.07.9.3→7.12.0Release Notes
remix-run/react-router (@react-router/dev)
v7.12.0Compare Source
Minor Changes
react-router.config.tsconfigallowedActionOriginsfield. (#14708)Patch Changes
Fix
Maximum call stack size exceedederrors when HMR is triggered against code with cyclic imports (#14522)fix(vite): Skip SSR middleware in preview server for SPA mode (#14673)
[UNSTABLE] Add a new
future.unstable_trailingSlashAwareDataRequestsflag to provide consistent behavior ofrequest.pathnameinsidemiddleware,loader, andactionfunctions on document and data requests when a trailing slash is present in the browser URL. (#14644)Currently, your HTTP and
requestpathnames would be as follows for/a/b/cand/a/b/c//a/b/crequestpathname`/a/b/c/a/b/c✅/a/b/c.data/a/b/c✅/a/b/c/requestpathname`/a/b/c//a/b/c/✅/a/b/c.data/a/b/cWith this flag enabled, these pathnames will be made consistent though a new
_.dataformat for client-side.datarequests:/a/b/crequestpathname`/a/b/c/a/b/c✅/a/b/c.data/a/b/c✅/a/b/c/requestpathname`/a/b/c//a/b/c/✅/a/b/c/_.data⬅️/a/b/c/✅This a bug fix but we are putting it behind an opt-in flag because it has the potential to be a "breaking bug fix" if you are relying on the URL format for any other application or caching logic.
Enabling this flag also changes the format of client side
.datarequests from/_root.datato/_.datawhen navigating to/to align with the new format. This does not impact therequestpathname which is still/in all cases.Updated dependencies:
react-router@7.12.0@react-router/node@7.12.0@react-router/serve@7.12.0v7.11.0Compare Source
Minor Changes
vite previewsupport (#14507)Patch Changes
routeRSCServerRequestreplacefetchServerwithserverResponse(#14597)react-router@7.11.0@react-router/serve@7.11.0@react-router/node@7.11.0v7.10.1Compare Source
Patch Changes
pkg-typeswith a dynamicimport()to fix issues on Node 20.18 (#14624)valibotdependency to^1.2.0to address GHSA-vqpr-j7v3-hqw9 (#14608)react-router@7.10.1@react-router/node@7.10.1@react-router/serve@7.10.1v7.10.0Compare Source
Minor Changes
Stabilize
future.v8_splitRouteModules, replacingfuture.unstable_splitRouteModules(#14595)future.unstable_splitRouteModules. Please update yourreact-router.config.ts.Stabilize
future.v8_viteEnvironmentApi, replacingfuture.unstable_viteEnvironmentApi(#14595)future.unstable_viteEnvironmentApi. Please update yourreact-router.config.ts.Patch Changes
Load environment variables before evaluating
routes.ts(#14446)For example, you can now compute your routes based on
VITE_-prefixed environment variables:# .env VITE_ENV_ROUTE=my-routeUpdated dependencies:
react-router@7.10.0@react-router/node@7.10.0@react-router/serve@7.10.0v7.9.6Compare Source
Patch Changes
import()to load ESM-onlyp-mapdependency to avoid issues on Node 20.18 and below (#14492)HEADdocument requests before callingrenderToPipeableStreamin the defaultentry.server.tsxto more closely align with the spec (#14488)react-router@7.9.6@react-router/node@7.9.6@react-router/serve@7.9.6v7.9.5Compare Source
Patch Changes
prerender.unstable_concurrencyoption, to support running the prerendering concurrently, potentially speeding up the build. (#14380)/domexport. (#14457)linkelements used by dynamic imports (#14463)react-router@7.9.5@react-router/node@7.9.5@react-router/serve@7.9.5v7.9.4Compare Source
Patch Changes
Update
valibotdependency to^1.1.0(#14379)New (unstable)
useRoutehook for accessing data from specific routes (#14407)For example, let's say you have an
adminroute somewhere in your app and you want any child routes ofadminto all have access to theloaderDataandactionDatafromadmin.You might even want to create a reusable widget that all of the routes nested under
admincould use:In framework mode,
useRouteknows all your app's routes and gives you TS errors when invalid route IDs are passed in:useRoutereturnsundefinedif the route is not part of the current page:Note: the
rootroute is the exception since it is guaranteed to be part of the current page.As a result,
useRoutenever returnsundefinedforroot.loaderDataandactionDataare marked as optional since they could be accessed before theactionis triggered or after theloaderthrew an error:If instead of a specific route, you wanted access to the current route's
loaderDataandactionData, you can calluseRoutewithout arguments:This usage is equivalent to calling
useLoaderDataanduseActionData, but consolidates all route data access into one hook:useRoute.Note: when calling
useRoute()(without a route ID), TS has no way to know which route is the current route.As a result,
loaderDataandactionDataare typed asunknown.If you want more type-safety, you can either narrow the type yourself with something like
zodor you can refactor your app to pass down typed props to yourAdminWidget:Updated dependencies:
react-router@7.9.4@react-router/node@7.9.4@react-router/serve@7.9.4remix-run/react-router (@react-router/serve)
v7.12.0Compare Source
Patch Changes
react-router@7.12.0@react-router/node@7.12.0@react-router/express@7.12.0v7.11.0Compare Source
Patch Changes
compressionandmorgandependencies to addresson-headersCVE: GHSA-76c9-3jph-rj3q (#14652)react-router@7.11.0@react-router/node@7.11.0@react-router/express@7.11.0v7.10.1Compare Source
Patch Changes
react-router@7.10.1@react-router/node@7.10.1@react-router/express@7.10.1v7.10.0Compare Source
Patch Changes
react-router@7.10.0@react-router/node@7.10.0@react-router/express@7.10.0v7.9.6Compare Source
Patch Changes
react-router@7.9.6@react-router/node@7.9.6@react-router/express@7.9.6v7.9.5Compare Source
Patch Changes
react-router@7.9.5@react-router/node@7.9.5@react-router/express@7.9.5v7.9.4Compare Source
Patch Changes
react-router@7.9.4@react-router/node@7.9.4@react-router/express@7.9.4Configuration
📅 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.
This PR was generated by Mend Renovate. View the repository job log.