atoms
,react
: useAtomSelector - subscribe to the new selector before destroying the old (#101)
core
: allow store-extending classes to have array state types (#96)core
: always notify effects subscribers when a hydration has metadata (#98)
This is mostly a republish of the last v1.2.0 release candidate. Looks good 👍
react
: improve types for AtomProvider (#92)
react
: handle unstable inline selector results inuseAtomSelector
(#88)
This release featured a near-full rewrite of the useAtomInstance
and useAtomSelector
hooks. They should be stable, but we're releasing a release candidate version first to verify
atoms
,react
: remove uSES usages and support strict mode (#86)
atoms
: give atom instances access to their real template type (#81)atoms
: makeecosystem.find()
do a fuzzy search when no exact match (#79)
Republish of v1.1.0-rc.0 with no additional changes since the release candidate looks good
atoms
: addrunOnInvalidate
option toinjectPromise
(#69)atoms
: deprecateinjectInvalidate
(preferinjectSelf
) (#70)core
: micro-optimize iterating and removing store subscribers (#76)
atoms
: make query atoms retain data (#68)core
: point core package's field to the correct file (#75)react
: fix multiple renderers cross-window React warning (#72)atoms
,immer
,machines
: prevent injectors from consuming hydrations (#71)
atoms
: addrunOnInvalidate
option toinjectPromise
(#69)atoms
: deprecateinjectInvalidate
(preferinjectSelf
) (#70)core
: micro-optimize iterating and removing store subscribers (#76)
atoms
: make query atoms retain data (#68)core
: point core package's field to the correct file (#75)react
: fix multiple renderers cross-window React warning (#72)atoms
,immer
,machines
: prevent injectors from consuming hydrations (#71)
atoms
: let the WeakMap clean up selector ref keys (#66)atoms
: make data retention consistent acrossinjectPromise
andapi(promise)
(#65)
Zedux got a big speed boost! In practice it won't matter much, but Zedux should now perform even better on stress tests and benchmarks. Enjoy!
atoms
: allow setting promise to undefined in AtomApi (#58)atoms
: improve graph perf by removing unnecessaryObject.keys()
calls (#52)atoms
: improve non-TS.getInstance()
usage by throwing helpful errors (#59)atoms
,react
: make atoms package fully framework agnostic (#51)
atoms
: improve atom searching (#57)atoms
: make it easier for TS to infer AtomApi types from chained methods (#49)react
: make React imports specify file extensions in esm builds (#53)react
: update React peer dep to a minimum of v16.3.0 (#54)atoms
,react
: improve overloads of atom-template-accepting functions for paramless atoms (#50)atoms
,core
,immer
,machines
,react
: fix package.json export order (#56)
atoms
: improve id generation; prevent selector with args cache reuse edge case (#46)react
: useuseSyncExternalStore
shim for now (#45)
Zedux's API is officially stable. We have several additions planned, but no breaking changes for any user-facing or documented APIs in the pipeline for the near future. It's go time!
- Breaking Change
atoms
:defaultTtl
->atomDefaults.ttl
(#38) - Breaking Change
atoms
: implement AtomApiGenerics type map and all its helpers (#40) - Breaking Change
react
: AtomInstanceProvider -> AtomProvider (#32) - Breaking Change
react
: makeinstance.invalidate()
a normal method (#29) - Breaking Change
react
: move auto-batching fromapi()
toinjectCallback()
(#31) - Breaking Change
react
: reuse names that can be shared between instances & selectors (#30) - Breaking Change
react
: useAtomConsumer -> useAtomContext (#33) - Breaking Change
atoms
,immer
: don't exportcreateInjector
- replace withinjectSelf
(#35) - Breaking Change
atoms
,core
,machines
: break out state machines into their own@zedux/machines
package (#36) - Breaking Change
atoms
,core
,immer
,machines
,react
: internalTypes -> zeduxTypes (#37) atoms
,react
: break the atomic model into its own @zedux/atoms package (#34)
- Breaking Change
atoms
:defaultTtl
->atomDefaults.ttl
(#38) - Breaking Change
atoms
: implement AtomApiGenerics type map and all its helpers (#40) - Breaking Change
react
: AtomInstanceProvider -> AtomProvider (#32) - Breaking Change
react
: makeinstance.invalidate()
a normal method (#29) - Breaking Change
react
: move auto-batching fromapi()
toinjectCallback()
(#31) - Breaking Change
react
: reuse names that can be shared between instances & selectors (#30) - Breaking Change
react
: useAtomConsumer -> useAtomContext (#33) - Breaking Change
atoms
,immer
: don't exportcreateInjector
- replace withinjectSelf
(#35) - Breaking Change
atoms
,core
,machines
: break out state machines into their own@zedux/machines
package (#36) - Breaking Change
atoms
,core
,immer
,machines
,react
: internalTypes -> zeduxTypes (#37) atoms
,react
: break the atomic model into its own @zedux/atoms package (#34)
react
: export SelectorCache class (#14)react
: make selectors trigger statusChanged mod events on init and destroy (#15)react
: make timestamp generation easily overridable; fix statusChanged event order (#17)react
: make useAtomConsumer log instead of throw an error when instance is Destroyedreact
: simplify inline selector detection (#22)react
: wrap scheduler run in try...finally; add handling for destroyed instances (#21)
react
: make DEV mode React component id generation work in SpiderMonkey (#20)react
: preventcontroller.abort()
from isolating theabort
fn (#27)react
: remove dehydrated state generic from ssr atom config options for now (#16)react
: restore Active status when an atom instance is revived (#13)core
,react
: improvestate.on
andObservable
types (#12)
react
: make all stores of all atoms in the evaluation stack use the ecosystem's scheduler (#10)
Republish v0.5.8 with build cache issue fixed
react
: make useAtomSelector rerender components when the selector value becomes undefined (#8)
core
: exposedetailedTypeof
andisPlainObject
from core packagecore
: removeaddMeta
andhasMeta
react
: fixapi()
Exports type defaultreact
: fixapi()
Promise type inference when returning result immediatelyreact
: make EvaluationStack restore store scheduler context in all cases