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
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,
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.1Release notes
Sourced from react-router's releases.
... (truncated)
Changelog
Sourced from react-router's changelog.
... (truncated)
Commits
0a87644
chore: Update version for release (#11767)453e5f3
chore: Update version for release (pre) (#11760)fa25691
Merge branch 'release-next' into deva569d76
chore: Update version for release (#11717)54f3138
chore: format4050bef
Fix #11629 (#11633)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)Updates
react-router-dom
from 5.3.4 to 6.24.1Release notes
Sourced from react-router-dom's releases.
... (truncated)
Changelog
Sourced from react-router-dom's changelog.
Superseded by #3030.