Skip to content

fix(deps): update dependency recoil to ^0.7.0#6

Closed
renovate[bot] wants to merge 1 commit into
mainfrom
renovate/recoil-0.x
Closed

fix(deps): update dependency recoil to ^0.7.0#6
renovate[bot] wants to merge 1 commit into
mainfrom
renovate/recoil-0.x

Conversation

@renovate

@renovate renovate Bot commented Jan 2, 2023

Copy link
Copy Markdown
Contributor

This PR contains the following updates:

Package Change Age Adoption Passing Confidence
recoil ^0.3.1 -> ^0.7.0 age adoption passing confidence

Release Notes

facebookexperimental/Recoil (recoil)

v0.7.7

Compare Source

  • Fix potential unhandled promise rejection in useRecoilCallback() (#​2075)
  • Add OSS support for GateKeeper feature toggling via RecoilEnv.RECOIL_GKS_ENABLED (#​2078)
  • Fix resolving suspense of async selectors used with SSR (#​2073, #​1960)
  • Fix SSR with some versions of React DOM used with Next.JS 13 (#​2082, #​2086)

v0.7.6

Compare Source

  • Expose flag to disable "duplicate atom key" checking / logging, as it was too noisy in environments such as NextJS or some dev environments using Fast Refresh. (#​733, #​2020, #​2046)
    • Import RecoilEnv from the recoil package, and set RecoilEnv.RECOIL_DUPLICATE_ATOM_KEY_CHECKING_ENABLED = false in code to disable the checking and logging.
    • We also support process.env.RECOIL_DUPLICATE_ATOM_KEY_CHECKING_ENABLED=false in NodeJS environments such as NextJs
    • Caution: This disables all checks for duplicate atom keys including legitimate errors, so use with caution!
  • Workaround for React 18 environments with nested renderers that don't support useSyncExternalStore(). (#​2001, #​2010)

v0.7.5

Compare Source

  • Fix useRecoilSnapshot() with React's Fast Refresh during development (#​1891)
  • Fix useRecoilSnapshot() and recoil-sync with changed browser behavior starting with Chrome v104 (#​1943, #​1936)

v0.7.4

Compare Source

v0.7.3

Compare Source

  • Enable atoms and selectors to be used in family parameters (#​1172)
  • Add parentStoreID_UNSTABLE to atom effects which is the ID of the parent store it cloned from, such as the host <RecoilRoot> store for useRecoilCallback() snapshots. (#​1744)
  • Atom effects can initialize or set atoms to wrapped values (#​1681)

v0.7.2

Compare Source

  • Selector cache lookup optimizations (#​1720, #​1736)
  • Allow async selectors to re-evaluate when async dependencies are discovered with stale state (#​1736)

v0.7.1

Compare Source

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)

v0.7.0

Compare Source

New Features

  • The default value is now optional for atom() and atomFamily(). If not provided the atom will initialize to a pending state. (#​1639)
  • Add getStoreID() method to Snapshot (#​1612)
  • 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)

v0.6.1

Compare Source

Fix postInstall script

v0.6.0

Compare Source

React 18

  • Leverage new React 18 APIs for improved safety and optimizations. (#​1488)
  • Fixes for <StrictMode> (#​1473, #​1444, #​1509).
  • Experimental support for useTransition() using hooks with _TRANSITION_SUPPORT_UNSTABLE suffix. (#​1572, #​1560)
  • Recoil updates now re-render earlier:
    • Recoil and React state changes from the same batch now stay in sync. (#​1076)
    • Renders now occur before transaction observers instead of after.

New Features

  • Add refresh() to the useRecoilCallback() interface for refreshing selector caches. (#​1413)
  • Callbacks from selector's getCallback() can now mutate, refresh, and transact Recoil state, in addition to reading it, for parity with useRecoilCallback(). (#​1498)
  • Recoil StoreID's for <RecoilRoot> and Snapshot stores accessible via useRecoilStoreID() hook (#​1417) or storeID parameter for atom effects (#​1414).
  • RecoilLoadable.all() and RecoilLoadable.of() now accept either literal values, async Promises, or Loadables. (#​1455, #​1442)
  • Add .isRetained() method for Snapshots and check if snapshot is already released when using .retain() (#​1546)

Other Fixes and Optimizations

  • Reduce overhead of snapshot cloning
    • Only clone the current snapshot for callbacks if the callback actually uses it. (#​1501)
    • Cache the cloned snapshots from callbacks unless there was a state change. (#​1533)
  • Fix transitive selector refresh for some cases (#​1409)
  • Fix some corner cases with async selectors and multiple stores (#​1568)
  • Atom Effects
    • Run atom effects when atoms are initialized from a set during a transaction from useRecoilTransaction_UNSTABLE() (#​1466, #​1569)
    • Atom effects are cleaned up when initialized by a Snapshot which is released. (#​1511, #​1532)
    • Unsubscribe onSet() handlers in atom effects when atoms are cleaned up. (#​1509)
    • Call onSet() when atoms are initialized with <RecoilRoot initializeState={...} > (#​1519, #​1511)
  • Avoid extra re-renders in some cases when a component uses a different atom/selector. (#​825)
  • <RecoilRoot> will only call initializeState() once during the initial render. (#​1372)
  • Lazily compute the properties of useGetRecoilValueInfo_UNSTABLE() and Snapshot#getInfo_UNSTABLE() results (#​1549)
  • Memoize the results of lazy proxies. (#​1548)

Breaking Changes

  • Rename atom effects from effects_UNSTABLE to just effects, as the interface is mostly stabilizing. (#​1520)
  • Atom effect initialization takes precedence over initialization with <RecoilRoot initializeState={...} >. (#​1509)
  • useGetRecoilValueInfo_UNSTABLE() and Snapshot#getInfo_UNSTABLE() always report the node type. (#​1547)
  • The 0.3 release introduced the need to retain Snapshots for later use, but it was mostly a warning. Now it is necessary to retain a Snapshot for asynchronous selectors to resolve. See the documentation here and here. Future releases will further enforce this as garbage collection is released.

v0.5.2

Compare Source

TypeScript fixes

v0.5.1

Compare Source

TypeScript fixes

v0.5.0

Compare Source

  • Added useRecoilRefresher_UNSTABLE() hook which forces a selector to re-run it's get(), and is a no-op for an atom. (#​972, #​1294, #​1302)
  • Atom effect improvements:
    • Add getLoadable(), getPromise(), and getInfo_UNSTABLE() to Atom Effects interface for reading other atoms. (#​1205, #​1210)
    • Add isReset parameter to onSet() callback to know if the atom is being reset or not. (#​1358, #​1345)
  • Loadable improvements:
    • Publish RecoilLoadable interface with factories and type checking for Loadables. (#​1263, #​1264, #​1312)
    • Ability to map Loadables with other Loadables. (#​1180)
    • Re-implement Loadable as classes. (#​1315)
  • Improved dev-mode checks:
    • Atoms freeze default, initialized, and async values. Selectors should not freeze upstream dependencies. (#​1261, #​1259)
    • Perform runtime check that required options are provided when creating atoms and selectors. (#​1324)
  • Allow class instances in family parameters for Flow

v0.4.1

Compare Source

  • Performance optimizations to suppress re-rendering components:
    • When subscribed selectors evaluate to the same value. (#​749, #​952)
    • On initial render when not using React Concurrent Mode (#​820)
    • When selector async deps resolve, but React re-renders before chained promises have executed.
  • Fixed #​1072 where in some cases selectors with async deps would not update in response to state updates

v0.4.0

Compare Source

New Features
  • Selector cache configuration: introduced cachePolicy_UNSTABLE option for selectors and selector families. This option allows you to control the behavior of how the selector evicts entries from its internal cache.
  • Improved useRecoilTransaction_UNSTABLE() hook for transactions with multiple atoms (#​1085)
Fixes and Optimizations
  • Fix TypeScript typing for selectorFamily(), getCallback(), useGetRecoilValueInfo(), and Snapshot#getNodes() (#​1060, #​1116, #​1123)
  • Allow mutable values in selectors to be used with waitFor*() helpers (#​1074, #​1096)
  • Atom Effects fixes:
    • Fix onSet() handler to get the proper new value when an atom is reset or has an async default Promise that resolves (#​1059, #​1050, #​738) (Slightly breaking change)
    • Fix support for multiple Atom effects cleanup handlers (#​1125)
    • Fix selector subscriptions when atoms with effects are initialized via a Snapshot (#​1135, #​1107)
  • Optimization for async selectors when dependencies resolve to cached values (#​1037)
  • Remove unnecessary warning message (#​1034, #​1062)

Configuration

📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@renovate

renovate Bot commented Jan 2, 2023

Copy link
Copy Markdown
Contributor Author

⚠ Artifact update problem

Renovate failed to update an artifact related to this branch. You probably do not want to merge this PR as-is.

♻ Renovate will retry this branch, including artifacts, only when one of the following happens:

  • any of the package files in this branch needs updating, or
  • the branch becomes conflicted, or
  • you click the rebase/retry checkbox if found above, or
  • you rename this PR's title to start with "rebase!" to trigger it manually

The artifact failure details are included below:

File name: app/launch/package-lock.json
npm notice 
npm notice New major version of npm available! 8.19.3 -> 9.2.0
npm notice Changelog: <https://github.com/npm/cli/releases/tag/v9.2.0>
npm notice Run `npm install -g npm@9.2.0` to update!
npm notice 
npm ERR! code ERESOLVE
npm ERR! ERESOLVE could not resolve
npm ERR! 
npm ERR! While resolving: react-materialize@3.9.8
npm ERR! Found: react@17.0.2
npm ERR! node_modules/react
npm ERR!   react@"^17.0.2" from the root project
npm ERR!   peer react@"^16.8.0 || ^17.0.0" from @material-ui/core@4.11.4
npm ERR!   node_modules/@material-ui/core
npm ERR!     @material-ui/core@"^4.11.4" from the root project
npm ERR!     peer @material-ui/core@"^4.0.0" from @material-ui/icons@4.11.2
npm ERR!     node_modules/@material-ui/icons
npm ERR!       @material-ui/icons@"^4.11.2" from the root project
npm ERR!     1 more (@material-ui/lab)
npm ERR!   12 more (@material-ui/icons, @material-ui/lab, ...)
npm ERR! 
npm ERR! Could not resolve dependency:
npm ERR! peer react@"^16.12.0" from react-materialize@3.9.8
npm ERR! node_modules/react-materialize
npm ERR!   react-materialize@"^3.9.8" from the root project
npm ERR! 
npm ERR! Conflicting peer dependency: react@16.14.0
npm ERR! node_modules/react
npm ERR!   peer react@"^16.12.0" from react-materialize@3.9.8
npm ERR!   node_modules/react-materialize
npm ERR!     react-materialize@"^3.9.8" from the root project
npm ERR! 
npm ERR! Fix the upstream dependency conflict, or retry
npm ERR! this command with --force, or --legacy-peer-deps
npm ERR! to accept an incorrect (and potentially broken) dependency resolution.
npm ERR! 
npm ERR! See /tmp/renovate-cache/others/npm/eresolve-report.txt for a full report.

npm ERR! A complete log of this run can be found in:
npm ERR!     /tmp/renovate-cache/others/npm/_logs/2023-01-02T09_53_20_625Z-debug-0.log

@renovate renovate Bot changed the title Update dependency recoil to ^0.7.0 fix(deps): update dependency recoil to ^0.7.0 Jan 30, 2025
@jdaugherty jdaugherty closed this Mar 2, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant