New Violations: Component names now need to start with an uppercase letter instead of a non-lowercase letter. This means _Button or _component are no longer valid. (@kassens) in #25162
Per this RFC, we've introduced some new APIs that give you more granular control over your fetcher behaviors. (#10960)
You may now specify your own fetcher identifier via useFetcher({ key: string }), which allows you to access the same fetcher instance from different components in your application without prop-drilling
allow undefined to be resolved with <Await> (#11513)
Updated dependencies:
@remix-run/router@1.16.1
6.23.0
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
Throw an error if an action/loader function returns undefined as revalidations need to know whether the loader has previously been executed. undefined also causes issues during SSR stringification for hydration. You should always ensure your loader/action returns a value, and you may return null if you don't wish to return anything. (#9511)
Properly handle redirects to external domains (#9590, #9654)
Preserve the HTTP method on 307/308 redirects (#9597)
This change removes the internal module-level routerSingleton we create and maintain inside our data routers since it was causing a number of headaches for non-simple use cases:
Unit tests are a pain because you need to find a way to reset the singleton in-between tests
Use use a _resetModuleScope singleton for our tests
...but this isn't exposed to users who may want to do their own tests around our router
The JSX children <Route> objects cause non-intuitive behavior based on idiomatic react expectations
Conditional runtime <Route>'s won't get picked up
Adding new <Route>'s during local dev won't get picked up during HMR
Using external state in your elements doesn't work as one might expect (see #9225)
Instead, we are going to lift the singleton out into user-land, so that they create the router singleton and manage it outside the react tree - which is what react 18 is encouraging with useSyncExternalStore anyways! This also means that since users create the router - there's no longer any difference in the rendering aspect for memory/browser/hash routers (which only impacts router/history creation) - so we can get rid of those and trim to a simple RouterProvider
// Before
function App() {
<DataBrowserRouter>
<Route path="/" element={<Layout />}>
<Route index element={<Home />}>
</Route>
<DataBrowserRouter>
}
// After
let router = createBrowserRouter([{
path: "/",
element: <Layout />,
children: [{
index: true,
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)
Updated dependencies:
react-router@6.24.0
@remix-run/router@1.17.0
6.23.1
Patch Changes
Check for document existence when checking startViewTransition (#11544)
Change the react-router-dom/server import back to react-router-dom instead of index.ts (#11514)
Updated dependencies:
@remix-run/router@1.16.1
react-router@6.23.1
6.23.0
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, middlew...
_Description has been truncated_
Bumps the major-dependecies group with 4 updates in the / directory: @rollup/plugin-commonjs, eslint, react-router and react-router-dom.
Updates
@rollup/plugin-commonjs
from 25.0.7 to 26.0.1Changelog
Sourced from
@rollup/plugin-commonjs
's changelog.Commits
8550c4b
chore(release): commonjs v26.0.104a15b5
fix(commonjs): correct import of globb3149b0
chore(release): commonjs v26.0.02447548
chore(commonjs)!: bump glob's version (#1695)8949965
chore(release): commonjs v25.0.80bb872b
fix(commonjs): preserve the class body property keys even if they are special...dcd8da5
chore(repo): use@dot/versioner
for releases (#1612)Updates
eslint
from 8.57.0 to 9.6.0Release notes
Sourced from eslint's releases.
... (truncated)
Changelog
Sourced from eslint's changelog.
... (truncated)
Commits
473d1bb
9.6.0f435566
Build: changelog update for 9.6.0b15ee30
chore: upgrade@eslint/js
@9
.6.0 (#18632)d655503
chore: package.json update for@eslint/js
release1613e2e
fix: Allow escaping characters in config patterns on Windows (#18628)13dbecd
docs: Limit search to just docs (#18627)7c78ad9
refactor: Use language.visitorKeys and check for non-JS SourceCode (#18625)e2b16e2
feat: Implement feature flags (#18516)69ff64e
refactor: Return value of applyInlineConfig() (#18623)375227f
docs: Update getting-started.md - add pnpm to init eslint config (#18599)Updates
eslint-plugin-react
from 7.33.2 to 7.34.3Release notes
Sourced from eslint-plugin-react's releases.
... (truncated)
Changelog
Sourced from eslint-plugin-react's changelog.
... (truncated)
Commits
cef8123
Update CHANGELOG and bump versioneb56061
[Deps] updatearray.prototype.tosorted
7d16666
[Dev Deps] update@babel/core
,@babel/eslint-parser
, `@babel/plugin-synta...6dc7803
[Fix]jsx-key
: incorrect behavior for checkKeyMustBeforeSpread with map cal...393bfa2
[Fix]no-object-type-as-default-prop
: enable rule for components with many ...a944aa5
[Fix]jsx-boolean-value
:assumeUndefinedIsFalse
withnever
must not all...a79beb3
[Fix]boolean-prop-naming
: avoid a crash with a spread prope27ef81
[Fix]prop-types
: null-check rootNode before calling getScope417e1ca
Update CHANGELOG and bump versiond79605a
[Deps] updatearray-includes
,array.prototype.findlast
, `es-iterator-help...Updates
eslint-plugin-react-hooks
from 4.6.0 to 4.6.2Changelog
Sourced from eslint-plugin-react-hooks's changelog.
Commits
Maintainer changes
This version was pushed to npm by react-bot, a new releaser for eslint-plugin-react-hooks since your current version.
Updates
react-router
from 5.3.4 to 6.24.0Release notes
Sourced from react-router's releases.
... (truncated)
Changelog
Sourced from react-router's changelog.
... (truncated)
Commits
a569d76
chore: Update version for release (#11717)a2f718b
chore: Update version for release (pre) (#11661)4e85e98
Support lazy route discovery (fog of war) (#11626)aef5c4a
chore: Update version for release (#11551)26bc8e2
chore: Update version for release (pre) (#11545)9651465
chore: Update version for release (pre) (#11516)e0b1db4
fix: allow undefined to be resolved with\<Await>
(#11513)82a3a77
chore: Update version for release (#11486)8a20f32
chore: Update version for release (pre) (#11387)88ec71a
chore: Update version for release (pre) (#11379)Updates
react-router-dom
from 5.3.4 to 6.24.0Release notes
Sourced from react-router-dom's releases.
... (truncated)
Changelog
Sourced from react-router-dom's changelog.