Releases: preactjs/signals
Release list
@preact/signals@2.9.3
Patch Changes
-
#950
76f9155Thanks @joeyTedeschi! - Allow<For>to accept readonly arrays and signals containing readonly arrays. -
#948
6b0a76cThanks @JoviDeCroock! - Dispose signal prop updaters when an element re-renders without any signal props.The disposal pass only ran when the new render still carried at least one signal-bound prop. When every signal prop was replaced by plain values, the old updater effect stayed subscribed and kept writing the previous signal's values straight into the DOM, overriding whatever Preact rendered.
-
Updated dependencies [
2910fbf,d40746b]:- @preact/signals-core@1.14.4
@preact/signals-react@3.10.3
Patch Changes
-
#950
76f9155Thanks @joeyTedeschi! - Allow<For>to accept readonly arrays and signals containing readonly arrays. -
Updated dependencies [
2910fbf,d40746b]:- @preact/signals-core@1.14.4
@preact/signals-core@1.14.4
Patch Changes
-
#947
2910fbfThanks @JoviDeCroock! - Fix computeds returning stale values after a batch reverts a signal to its original value.Reconciling a reverted batch write used to roll the signal's version number back, breaking version monotonicity. A lazy computed that read the signal during the batch had already observed the intermediate version, so a later write could re-mint that same version number for a different value and the computed would treat it as unchanged forever. Subscriber nodes that saw the pre-batch version are now fast-forwarded instead, keeping the no-op skip optimization without ever reusing version numbers.
-
#945
d40746bThanks @andrewiggins! - Prevent model effect capture while creating effects insideuntracked()andaction()callbacks.If you create an
effect()inside anuntracked()callback within acreateModel()factory, that effect is no longer disposed when the model is disposed. Use the disposer returned byeffect()to clean it up manually.
@preact/signals@2.9.2
Patch Changes
-
#942
e76780cThanks @JoviDeCroock! - Fix stale<For>render-prop indexes after removals/reorders by making each cached item's index reactive (a per-item signal) instead of a frozen prop. Cached children are reused and re-render with the new index rather than being recreated, so DOM/component identity is preserved. -
#938
e0ce9fdThanks @JoviDeCroock! - Fix Signal-bound DOM props getting stranded at a stale value when Preact reuses a DOM node. The prop-binding effect now writes the applied value back into the rendered props, keeping Preact's diff baseline in sync with the DOM instead of assuming Preact applied every update. -
Updated dependencies [
beb84c1]:- @preact/signals-core@1.14.3
@preact/signals-react@3.10.2
Patch Changes
-
#942
e76780cThanks @JoviDeCroock! - Fix stale<For>render-prop indexes after removals/reorders by making each cached item's index reactive (a per-item signal) instead of a frozen prop. Cached children are reused and re-render with the new index rather than being recreated, so DOM/component identity is preserved. -
Updated dependencies [
beb84c1]:- @preact/signals-core@1.14.3
@preact/signals-core@1.14.3
Patch Changes
- #937
beb84c1Thanks @JoviDeCroock! - Optimize bundle size
@preact/eslint-plugin-signals@0.3.0
Minor Changes
- #940
70c7b9fThanks @JoviDeCroock! - Addno-useless-computedrule that flagscomputed()/useComputed()callbacks which only return a single signal's.valuewithout transformation
@preact/signals-react@3.10.1
Patch Changes
-
#918
8732619Thanks @JoviDeCroock! - Updatelive-signalwithin an effect to avoid thecannot update component while rendering other componenterror in react. -
Updated dependencies [
054afc1]:- @preact/signals-core@1.14.2
@preact/signals-core@1.14.2
Patch Changes
- #915
054afc1Thanks @JoviDeCroock! - Shave some bytes by using untracked to implement peek
@preact/signals-core@1.14.1
Patch Changes
-
#906
0c65390Thanks @JoviDeCroock! - Wrap nested object methods returned from createModel so composed models keep action batching semantics without manual action wrappers. -
#911
6c17923Thanks @JoviDeCroock! - Avoid hard-requiringESNext.Disposablein consumer tsconfigs forModelandeffect()types.