@remix-run/react

@remix-run/react breaking-changes badge

@remix-run/react (latest known version: 5.0.6) has 519 known breaking changes on record, each backed by a source URL.

Actively maintainedLatest known version: 5.0.6npm ↗

Security advisories

GHSA-3cgp-3xvw-98x8HIGH>=7.0.0 <7.9.0 || >=1.15.0 <2.17.1

React Router has XSS Vulnerability

source ↗

GHSA-8v8x-cx79-35w7HIGH>=7.0.0 <7.12.0 || <2.17.3

React Router SSR XSS in ScrollRestoration

source ↗

Recent changes

vlazy-file@5.0.6Notable

Bumped `@remix-run/*` dependencies, including `mime@0.4.2`

source ↗

vlazy-file@5.0.5Breaking

Fix `LazyBlob.slice()` and `LazyFile.slice()` so slicing an existing slice is calculated relative to the current slice instead of the original source content

Code that relied on the previous behavior of slicing being calculated relative to the original source content will need to be updated to account for slices now being relative to the current slice.

source ↗

vlazy-file@5.0.4Notable

Declare `LazyBlob` and `LazyFile` as implementations of the native `Blob` and `File` interfaces so their type contracts are checked as the classes evolve

source ↗

vlazy-file@5.0.3Notable

Bumped `@remix-run/*` dependencies including `mime@0.4.1`

source ↗

vlazy-file@5.0.2Notable

Bumped `@remix-run/*` dependencies including `mime@0.4.0`

source ↗

v@remix-run/lazy-file@5.0.1Breaking

Changed `@remix-run/*` peer dependencies to regular dependencies

source ↗

v@remix-run/lazy-file@5.0.0Notable

New methods added to LazyFile and LazyBlob: LazyFile.toFile(), LazyFile.toBlob(), and LazyBlob.toBlob()

source ↗

v@remix-run/lazy-file@5.0.0Breaking

LazyFile and LazyBlob no longer extend native File and Blob; instanceof checks will return false and passing them directly to Response or FormData will throw an error

For Response, use lazyFile.stream(). For APIs requiring a complete File like FormData, use await lazyFile.toFile()

source ↗

vlazy-file@4.2.0Breaking

Move `@remix-run/mime` to `peerDependencies`

Install `@remix-run/mime` as a direct dependency in your project if you rely on it being provided by this package

source ↗

vlazy-file@4.1.0Breaking

Replaced `mrmime` dependency with `@remix-run/mime` for MIME type detection

Users should ensure `@remix-run/mime` is available as a dependency instead of `mrmime`

source ↗

vlazy-file@4.0.0Breaking

Removed `lazy-file/fs` export. Use `@remix-run/fs` package instead.

Import `openFile`, `writeFile` and other filesystem functions from `@remix-run/fs` package instead of `@remix-run/lazy-file/fs`.

source ↗

vlazy-file@3.8.0Notable

Add `findFile` function for finding files within a root directory

source ↗

vlazy-file@3.8.0Breaking

`openFile()` now sets `file.name` to the `filename` argument as provided, instead of using `path.basename(filename)`. For example, `openFile('./public/assets/favicon.ico')` will set `file.name` to `'./public/assets/favicon.ico'` instead of `'favicon.ico'`.

You can override the name by passing `options.name` to `openFile()`, e.g. `openFile('./public/assets/favicon.ico', { name: 'favicon.ico' })`.

source ↗

vlazy-file@3.7.0Notable

Fix type errors in TypeScript 5.7+ when using typed arrays

source ↗

vlazy-file@3.7.0Breaking

Build system changed from `esbuild` to `tsc`, which means modules in the `dist` directory now mirror the layout of modules in the `src` directory

source ↗

vlazy-file@3.6.0Breaking

Removed CommonJS build. This package is now ESM-only.

If you need to use this package in a CommonJS project, you will need to use dynamic `import()`.

source ↗

vlazy-file@3.5.0Breaking

Renamed package from `@mjackson/lazy-file` to `@remix-run/lazy-file`

Update package imports and dependencies to use `@remix-run/lazy-file` instead of `@mjackson/lazy-file`

source ↗

vremix@3.0.0-alpha.0Notable

Initial alpha release of `remix` package for Remix 3

source ↗

vremix@3.0.0-alpha.1Breaking

Changed `@remix-run/*` peer dependencies to regular dependencies

source ↗

vremix@3.0.0-alpha.2Notable

Bumped `@remix-run/*` dependencies including async-context-middleware@0.1.2, component@0.4.0, compression-middleware@0.1.2, fetch-router@0.16.0, form-data-middleware@0.1.3, form-data-parser@0.15.0, interaction@0.5.0, logger-middleware@0.1.2, method-override-middleware@0.1.3, route-pattern@0.18.0, session-middleware@0.1.3, and static-middleware@0.4.3

source ↗

vremix@3.0.0-alpha.2Notable

Added `package.json` `exports` for `remix/route-pattern/specificity` to re-export APIs from `@remix-run/route-pattern/specificity`

source ↗

vfile-storage-s3@0.1.0Notable

Initial release of `@remix-run/file-storage-s3`

source ↗

vremix@3.0.0-alpha.3Notable

Added `package.json` `exports` for `remix/data-schema`, `remix/data-schema/checks`, `remix/data-schema/coerce`, `remix/data-schema/lazy`, `remix/data-table`, `remix/data-table-mysql`, `remix/data-table-postgres`, `remix/data-table-sqlite`, `remix/fetch-router/routes`, `remix/file-storage-s3`, `remix/session-storage-memcache`, and `remix/session-storage-redis` to re-export APIs from their corresponding `@remix-run/*` packages

source ↗

vremix@3.0.0-alpha.3Breaking

Removed the root export from the `remix` package so you will no longer import anything from `remix` and will instead always import from a sub-path such as `remix/fetch-router` or `remix/component`

source ↗

vremix@3.0.0-alpha.4Notable

Add `Database` class export from `remix/data-table` as a runtime value that can be constructed directly with `new Database(adapter, options)` or via the existing `createDatabase(adapter, options)` function which now delegates to the class constructor.

source ↗

vremix@3.0.0-alpha.4Notable

Add `package.json` `exports` for `remix/auth-middleware` to re-export APIs from `@remix-run/auth-middleware` and `remix/auth` to re-export APIs from `@remix-run/auth`.

source ↗

vremix@3.0.0-alpha.4Notable

Add `remix/csrf-middleware` exposing `csrf(options)` and `getCsrfToken(context)` for session-backed CSRF tokens plus origin validation.

source ↗

vremix@3.0.0-alpha.4Notable

Add `remix/cop-middleware` exposing `cop(options)` for browser-focused cross-origin protection using `Sec-Fetch-Site` with `Origin` fallback, trusted origins, and configurable bypasses.

source ↗

vremix@3.0.0-alpha.4Notable

Update `remix/component` and `remix/component/server` to re-export the latest `@remix-run/component` frame-navigation APIs including `navigate(href, { src, target, history })`, `link(href, { src, target, history })`, `run({ loadModule, resolveFrame })`, and the `handle.frames.top` and `handle.frames.get(name)` helpers.

source ↗

vremix@3.0.0-alpha.4Notable

Add `remix/cors-middleware` to re-export the CORS middleware APIs from `@remix-run/cors-middleware`.

source ↗

Check what changed for @remix-run/react since your installed version, live.

Open the playground →