This bugfix release updates the React Native peer dependency to be >= 0.69, to better reflect the need for React 18 compat and (hopefully) resolve issues with the npm package manager throwing peer dep errors on install.
This bugfix release drops the ReactDOM / React Native specific use of render batching, as React 18 now automatically batches, and updates the React types dependencies
Changelog
Batching Dependency Updates
React-Redux has long depended on React's unstable_batchedUpdates API to help batch renders queued by Redux updates. It also re-exported that method as a util named batch.
However, React 18 now auto-batches all queued renders in the same event loop tick, so unstable_batchedUpdates is effectively a no-op.
Using unstable_batchedUpdates has always been a pain point, because it's exported by the renderer package (ReactDOM or React Native), rather than the core react package. Our prior implementation relied on having separate batch.ts and batch.native.ts files in the codebase, and expecting React Native's bundler to find the right transpiled file at app build time. Now that we're pre-bundling artifacts in React-Redux v9, that approach has become a problem.
Given that React 18 already batches by default, there's no further need to continue using unstable_batchedUpdates internally, so we've removed our use of that and simplified the internals.
We still export a batch method, but it's effectively a no-op that just immediately runs the given callback, and we've marked it as @deprecated.
We've also updated the build artifacts and packaging, as there's no longer a need for an alternate-renderers entry point that omits batching, or a separate artifact that imports from "react-native".
This bugfix release updates the package to include a new react-redux.react-native.js bundle that specifically imports React Native, and consolidates all of the 'react' imports into one file to save on bundle size (and enable some tricky React Native import handling).
Add a new future.v7_relativeSplatPath flag to implement a breaking bug fix to relative routing when inside a splat route. (#11087)
This fix was originally added in #10983 and was later reverted in #11078 because it was determined that a large number of existing applications were relying on the buggy behavior (see #11052)
The Bug
The buggy behavior is that without this flag, the default behavior when resolving relative paths is to ignore any splat (*) portion of the current route path.
The Background
This decision was originally made thinking that it would make the concept of nested different sections of your apps in <Routes> easier if relative routing would replace the current splat:
Any paths like /dashboard, /dashboard/team, /dashboard/projects will match the Dashboard route. The dashboard component itself can then render nested <Routes>:
This patch release adjusts the isPlainObject util to allow objects created via Object.create(null), and fixes a type issue which accidentally made the store state type non-nullable.
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency
- `@dependabot ignore major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)
- `@dependabot ignore minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)
- `@dependabot ignore ` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore ` will remove all of the ignore conditions of the specified dependency
- `@dependabot unignore ` will remove the ignore condition of the specified dependency and ignore conditions
Bumps the all-dependencies group in /frontend with 8 updates:
9.0.0
9.0.4
6.20.1
6.21.1
5.24.0
5.25.0
5.0.0
5.0.1
7.23.5
7.23.6
7.23.5
7.23.6
8.55.0
8.56.0
2.29.0
2.29.1
Updates
react-redux
from 9.0.0 to 9.0.4Release notes
Sourced from react-redux's releases.
... (truncated)
Commits
8c503ef
Release 9.0.44c7fbd9
Merge pull request #2107 from R3DST0RM/react-native-peer-dependency-fixce76bf0
Build module with updated peerDependency1affb37
Allow react-native newer than 0.69 as peer dependency27d4f3f
Release 9.0.30c31f2d
Restorereact-native
peer dep3da2266
Merge pull request #2105 from reduxjs/feature/9.0-lower-react-typesc550327
Drop@types/react-dom
and lower@types/react
to min needed5bb3c4f
Merge pull request #2104 from reduxjs/feature/9.0-remove-batching6302797
Drop renderer-specific batching behavior and deprecatebatch
Updates
react-router-dom
from 6.20.1 to 6.21.1Release notes
Sourced from react-router-dom's releases.
... (truncated)
Changelog
Sourced from react-router-dom's changelog.
... (truncated)
Commits
08cda17
chore: Update version for release (#11132)e5d73cf
chore: Update version for release (pre) (#11131)ba99ec5
Merge branch 'main' into release-next0f04d11
Fix issues with partial hydration combined with route.lazy (#11121)cc4436c
Update changelogs for useResolvedSplat examplec292bdb
Merge branch 'release-next' into dev69ba50e
chore: Update version for release (#11114)54ec39e
Allow persisted fetchers unmounted during submit to revalidate (#11102)ea0ffee
chore: Update version for release (pre) (#11095)fe3c071
Slight refactor to partial hydration to leverage state.initialized properly (...Updates
react-tooltip
from 5.24.0 to 5.25.0Release notes
Sourced from react-tooltip's releases.
Commits
ee18133
chore(version): v5.25.01741761
feat: support data-tooltip-class-name on anchor56a7ba1
Merge pull request #1126 from ReactTooltip/fix/docs-css8bffb68
chore: move digital ocean to a bit upper into the readmee856e9a
docs: fix docs css on production build and upgrade the package to the latest ...Updates
redux
from 5.0.0 to 5.0.1Release notes
Sourced from redux's releases.
Commits
50b0102
format isPlainObject.ts66f955f
5.0.1ffb02eb
Merge pull request #4644 from reduxjs/publish-cid641945
add me to FUNDING.yml7a2fa78
Add publish CI workflowfa2d899
Merge pull request #4638 from exuanbo/patch-19e8a320
add type test105e389
Merge pull request #4643 from ziayanj/patch-1f259beb
Update why-rtk-is-redux-today.md3cd25e1
Merge pull request #4642 from factiondavid/patch-1Maintainer changes
This version was pushed to npm by phryneas, a new releaser for redux since your current version.
Updates
@babel/core
from 7.23.5 to 7.23.6Release notes
Sourced from
@babel/core
's releases.Changelog
Sourced from
@babel/core
's changelog.Commits
d02c1f7
v7.23.6f8a98c7
[babel 8] RemoveCodeGenerator
from@babel/generator
(#16126)Updates
@babel/preset-env
from 7.23.5 to 7.23.6Release notes
Sourced from
@babel/preset-env
's releases.Changelog
Sourced from
@babel/preset-env
's changelog.Commits
d02c1f7
v7.23.68fa2a91
[babel 8] Removeloose
andspec
options frompreset-env
(#16043)380d186
fix:for of
withiterableIsArray
and shadowing variable (#16011)d93c702
Bump browserslist to 4.22.2 (#16151)afcb5a8
ApplytoPropertyKey
on decorator context name (#16139)Updates
eslint
from 8.55.0 to 8.56.0Release notes
Sourced from eslint's releases.
Changelog
Sourced from eslint's changelog.
Commits
8e8e9f8
8.56.0085978b
Build: changelog update for 8.56.0ba6af85
chore: upgrade@eslint/js
@8
.56.0 (#17864)60a531a
chore: package.json update for@eslint/js
release0dd9704
feat: Support custom severity when reporting unused disable directives (#17212)31a7e3f
feat: fix no-restricted-properties false negatives with unknown objects (#17818)ba87a06
chore: update dependency markdownlint to ^0.32.0 (#17783)7d5e5f6
fix:TypeError: fs.exists is not a function
on read-only file system (#17846)9271d10
chore: add GitHub issue template for docs issues (#17845)70a686b
chore: Convert rule tests to FlatRuleTester (#17819)Updates
eslint-plugin-import
from 2.29.0 to 2.29.1Release notes
Sourced from eslint-plugin-import's releases.
Changelog
Sourced from eslint-plugin-import's changelog.
Commits
ee5fade
Bump to 2.29.148fec35
[Deps] updatetsconfig-paths
80aee73
[Dev Deps] updatechai
,eslint-doc-generator
,markdownlint-cli
8c83eaf
[Tests] node v21.3 has a brokenfs.writeFile
e67259e
[Fix]no-unused-modules
: support export patterns with array destructuring9fd3c42
[Tests]no-duplicates
: add passing test12f0300
[Fix]no-extraneous-dependencies
: ignoreexport type { ... } from '...'
w...Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase
.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show