Skip to content

Update dependency recoil to v0.7.7#30

Open
renovate[bot] wants to merge 1 commit intomainfrom
renovate/recoil-0.x
Open

Update dependency recoil to v0.7.7#30
renovate[bot] wants to merge 1 commit intomainfrom
renovate/recoil-0.x

Conversation

@renovate
Copy link
Copy Markdown
Contributor

@renovate renovate bot commented May 14, 2021

This PR contains the following updates:

Package Change Age Confidence
recoil 0.2.00.7.7 age 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)

v0.3.1

Compare Source

  • Fix TypeScript exports

v0.3.0: 0.3

Compare Source

Breaking Changes

For supporting garbage collection in the future there is a slight breaking change that Snapshot's will only be valid for the duration of the callback or render. A new retain() API can be used to persist them longer. This is not enforced yet, but Recoil will now provide a warning in dev-mode if a Snapshot is used past its lifetime. (#​1006)

New Features / Improvements
  • Add override prop to <RecoilRoot> (#​973)
  • Add getCallback() to selector evaluation interface (#​989)
  • Improved TypeScript and Flow typing for Loadables (#​966, #​1022)
Performance Optimizations
  • Improve scalability (time and memory) of Atom families by cleaning up a legacy feature.
Bug Fixes
  • Throwing an error in an async selector should be properly caught by <ErrorBoundary>'s (#​998, #​1017)
  • Fix for Atom Effects onSet() should not be called when triggered from setSelf() initializing with a Promise or from the same onSet() handler. (#​974, #​979, #​953, #​986)
  • Improved support for Safari (#​967, #​609)
  • Objects stored in selectors are properly frozen in dev mode (#​911)

Configuration

📅 Schedule: (in timezone Asia/Tokyo)

  • Branch creation
    • "every weekend"
  • 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 added the renovate label May 14, 2021
@renovate renovate bot force-pushed the renovate/recoil-0.x branch from be765cd to 220888c Compare May 18, 2021 21:38
@renovate renovate bot changed the title Update dependency recoil to v0.3.0 Update dependency recoil to v0.3.1 May 18, 2021
@renovate renovate bot force-pushed the renovate/recoil-0.x branch from 220888c to 45dc8f7 Compare June 25, 2021 16:13
@renovate renovate bot force-pushed the renovate/recoil-0.x branch from 45dc8f7 to 50dbdf1 Compare July 29, 2021 23:07
@renovate renovate bot changed the title Update dependency recoil to v0.3.1 Update dependency recoil to v0.4.0 Jul 29, 2021
@renovate renovate bot force-pushed the renovate/recoil-0.x branch from 50dbdf1 to 6065abd Compare August 27, 2021 01:31
@renovate renovate bot changed the title Update dependency recoil to v0.4.0 Update dependency recoil to v0.4.1 Aug 27, 2021
@renovate renovate bot force-pushed the renovate/recoil-0.x branch from 6065abd to 74b66e0 Compare August 28, 2021 00:14
@renovate renovate bot force-pushed the renovate/recoil-0.x branch from 74b66e0 to 091e584 Compare November 4, 2021 09:35
@renovate renovate bot changed the title Update dependency recoil to v0.4.1 Update dependency recoil to v0.5.0 Nov 4, 2021
@renovate renovate bot force-pushed the renovate/recoil-0.x branch from 091e584 to a7b7c2d Compare November 6, 2021 01:33
@renovate renovate bot changed the title Update dependency recoil to v0.5.0 Update dependency recoil to v0.5.1 Nov 6, 2021
@renovate renovate bot force-pushed the renovate/recoil-0.x branch from a7b7c2d to c38a098 Compare November 7, 2021 19:48
@renovate renovate bot changed the title Update dependency recoil to v0.5.1 Update dependency recoil to v0.5.2 Nov 7, 2021
@renovate renovate bot force-pushed the renovate/recoil-0.x branch from c38a098 to 4582d67 Compare January 29, 2022 08:37
@renovate renovate bot changed the title Update dependency recoil to v0.5.2 Update dependency recoil to v0.6.0 Jan 29, 2022
@renovate renovate bot force-pushed the renovate/recoil-0.x branch from 4582d67 to 537dbca Compare January 29, 2022 18:38
@renovate renovate bot changed the title Update dependency recoil to v0.6.0 Update dependency recoil to v0.6.1 Jan 29, 2022
@renovate renovate bot force-pushed the renovate/recoil-0.x branch from 537dbca to 9b74b1b Compare April 1, 2022 12:29
@renovate renovate bot changed the title Update dependency recoil to v0.6.1 Update dependency recoil to v0.7.0 Apr 1, 2022
@renovate renovate bot force-pushed the renovate/recoil-0.x branch from 9b74b1b to 196579f Compare April 13, 2022 05:14
@renovate renovate bot changed the title Update dependency recoil to v0.7.0 Update dependency recoil to v0.7.1 Apr 13, 2022
@renovate renovate bot changed the title Update dependency recoil to v0.7.1 Update dependency recoil to v0.7.2 Apr 14, 2022
@renovate renovate bot force-pushed the renovate/recoil-0.x branch from 196579f to a78c60f Compare April 14, 2022 23:18
@renovate renovate bot force-pushed the renovate/recoil-0.x branch from a78c60f to f12bfec Compare June 18, 2022 16:27
@renovate renovate bot changed the title Update dependency recoil to v0.7.2 Update dependency recoil to v0.7.3 Jun 18, 2022
@renovate renovate bot force-pushed the renovate/recoil-0.x branch from f12bfec to 47021d3 Compare June 23, 2022 21:39
@renovate renovate bot changed the title Update dependency recoil to v0.7.3 Update dependency recoil to v0.7.4 Jun 23, 2022
@renovate renovate bot force-pushed the renovate/recoil-0.x branch from 47021d3 to 2d7d393 Compare September 25, 2022 21:08
@renovate renovate bot changed the title Update dependency recoil to v0.7.4 Update dependency recoil to v0.7.5 Sep 25, 2022
@renovate renovate bot force-pushed the renovate/recoil-0.x branch from 2d7d393 to 8269ea5 Compare November 20, 2022 14:19
@renovate renovate bot changed the title Update dependency recoil to v0.7.5 Update dependency recoil to v0.7.6 Nov 20, 2022
@renovate renovate bot force-pushed the renovate/recoil-0.x branch from 8269ea5 to f724b48 Compare March 17, 2023 23:59
@renovate renovate bot changed the title Update dependency recoil to v0.7.6 Update dependency recoil to v0.7.7 Mar 17, 2023
@renovate renovate bot changed the title Update dependency recoil to v0.7.7 Update dependency recoil to v0.7.7 - autoclosed Dec 8, 2024
@renovate renovate bot closed this Dec 8, 2024
@renovate renovate bot deleted the renovate/recoil-0.x branch December 8, 2024 19:01
@renovate renovate bot changed the title Update dependency recoil to v0.7.7 - autoclosed Update dependency recoil to v0.7.7 Dec 14, 2024
@renovate renovate bot reopened this Dec 14, 2024
@renovate renovate bot force-pushed the renovate/recoil-0.x branch from ed940d8 to f724b48 Compare December 14, 2024 03:03
@renovate renovate bot force-pushed the renovate/recoil-0.x branch from f724b48 to fe8bcc1 Compare August 10, 2025 14:38
@renovate renovate bot force-pushed the renovate/recoil-0.x branch from fe8bcc1 to 29f13cf Compare August 19, 2025 13:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants