Allow async selectors to re-evaluate when async dependencies are discovered with stale state (#1736)
0.7.1
Typing
Add explicit children prop to <RecoilRoot> and useRecoilBridgeAcrossReactRoots_UNSTABLE() for TypeScript for @types/react with React 18 (#1718, #1717, #1726, #1731)
Update typing for family parameters to better support Map, Set, and classes with toJSON(). (#1709, #1703)
Fixes
Avoid dev-mode console error with React 18 when using shared async selectors across multiple <RecoilRoot>'s. (#1712)
Cleanup potential memory leak when using async selectors. (#1714)
Fix potentially hung async selectors when shared across multiple roots that depend on atoms initialized with promises that don't resolve. (#1714)
0.7.0
New Features
The default value is now optional for atom() and atomFamily(). If not provided the atom will initialize to a pending state. (#1639)
Publish RecoilLoadable.loading() factory for making an async Loadable which never resolves. (#1641)
Breaking Changes
Selector's get() and Atom's default can now accept a Loadable to put the node in that state. If you wish to store a Loadable, Promise, or RecoilValue directly you can wrap it with selector.value() or atom.value(). (#1640)
useRecoilCallback() now provides a snapshot for the latest state when the callback is called instead of the latest rendered state, which had issues (#1610, #1604)
Improvements / Optimizations
Automatically retain snapshots for the duration of async callbacks. (#1632)
Optimization for more selector dependencies. 2x improvement with 100 dependencies, 4x with 1,000, and now able to support 10,000+. (#1651, #1515, #914)
Better error reporting when selectors provide inconsistent results (#1696)
Fixes
Avoid spurious console errors from effects when calling setSelf() from onSet() handlers. (#1589, #1582)
Freezing user values in dev mode now works in JS environments without the Window interface. (#1571)
Allow async selectors to re-evaluate when async dependencies are discovered with stale state (#1736)
0.7.1 (2022-04-12)
Typing
Add explicit children prop to <RecoilRoot> and useRecoilBridgeAcrossReactRoots_UNSTABLE() for TypeScript for @types/react with React 18 (#1718, #1717, #1726, #1731)
Update typing for family parameters to better support Map, Set, and classes with toJSON(). (#1709, #1703)
Fixes
Avoid dev-mode console error with React 18 when using shared async selectors across multiple <RecoilRoot>'s. (#1712)
Cleanup potential memory leak when using async selectors (#1714)
Fix potentially hung async selectors when shared across multiple roots that depend on atoms initialized with promises that don't resolve (#1714)
0.7 (2022-03-31)
New Features
The default value is now optional for atom() and atomFamily(). If not provided the atom will initialize to a pending state. (#1639)
Publish RecoilLoadable.loading() factory for making an async Loadable which never resolves. (#1641)
Breaking Changes
Selector's get() and Atom's default can now accept a Loadable to put the node in that state.
If you wish to store a Loadable, Promise, or RecoilValue directly you can wrap it with selector.value() or atom.value(). (#1640)
useRecoilCallback() now provides a snapshot for the latest state instead of the latest rendered state, which had bugs (#1610, #1604)
Improvements / Optimizations
Automatically retain snapshots for the duration of async callbacks. (#1632)
Optimization for more selector dependencies. 2x improvement with 100 dependencies, 4x with 1,000, and now able to support 10,000+. (#1651, #1515, #914)
Better error reporting when selectors provide inconsistent results (#1696)
Fixes
Avoid spurious console errors from effects when calling setSelf() from onSet() handlers. (#1589, #1582)
Freezing user values in dev mode now works in JS environments without the Window interface. (#1571)
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 ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Bumps recoil from 0.6.1 to 0.7.2.
Release notes
Sourced from recoil's releases.
Changelog
Sourced from recoil's changelog.
Commits
2b04e5b
0.7.2 Release (#1737)6ead667
Optimize async selector cache lookups (#1736)f61a371
Cosmetic selector cleanup (#1721)854e574
Earlier selector cache lookup (#1720)685c36b
0.7.1 Release (#1732)e9b4f45
Add explicitchildren
prop touseRecoilBridgeAcrossReactRoots()
(#1731)1274a1c
Add annotations to unannotated variable declarations in html/shared [manually...0541024
Restore D3542697524bc4b1
Revert D354269759ac502b
Update RecoilRootProps type for React 18 types (#1718)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 ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)