atoms
,stores
: fix some more v2 types (#180)
- Breaking Change
atoms
,react
,stores
: fix some types, return values, and relative imports (#178)
- Breaking Change
atoms
: makeinjectMemo
reactive when no deps are passed (#171) - Breaking Change
atoms
,react
: replace atom getters with ecosystem function properties (#169) - Breaking Change
atoms
,react
,stores
: addstatus
getter property to graph nodes (#173) - Breaking Change
atoms
,react
,stores
: implementuntrack
and rework injectors (#170) - Breaking Change
atoms
,react
,stores
: implement new plugins spec (#168) - Breaking Change
atoms
,immer
,machines
,react
,stores
: make listeners passive, implement all implicit events (#158) atoms
,react
,stores
: implement scoped atoms,inject
, andecosystem.withScope
(#172)
atoms
: add tests for proxies and fix several edge case bugs (#176)atoms
,core
: defer state changes during node evaluation (#175)
- Breaking Change
atoms
: removecreatedAt
timestamp tracking (#150) - Breaking Change
atoms
,react
,stores
: makesignal.get
reactive and addsignal.getOnce
(#151)
- Breaking Change
atoms
,core
,machines
,react
,stores
: implement proxies, signals, and mapped signals (#147)
immer
: import namedproduce
export from immer (#146)atoms
,core
,immer
,machines
,react
: remove package.json production exports (#137) (#142)
react
: relax React peer dep for now - use>=18
(#125)
- Breaking Change
core
: remove hierarchy config (#94) - Breaking Change
atoms
,immer
,machines
,react
: implement ExternalNode class and make nodes the keys of edge maps (#120) - Breaking Change
atoms
,core
,immer
,machines
,react
: make instances valid graph nodes and jobs (#114)
react
: only rerunuseAtomSelector
effect on cache id change (#110)
react
: restoreuseAtomSelector
mounted state when swapping inline refs (#108)
This version contains huge fixes for useAtomSelector
that are only fully compatible with React 19 or with React 18 when not using StrictMode. It's recommended to wait for React 19 before upgrading to this version.
atoms
,react
: optimizeuseAtomSelector
for React 19 (#106)
react
: makeuseAtomSelector
wait for idle time to do failsafe cleanup (#113)
atoms
: disableecosystem.find()
fuzzy search if params are passed (#103)
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