UNPKG

ziko

Version:

A versatile JavaScript library offering a rich set of Hyperscript Based UI components, advanced mathematical utilities, interactivity ,animations, client side routing and more ...

23 lines (22 loc) 705 B
export function useDerived(deriveFn, sources) { let value = deriveFn(...sources.map(s => s().value)); const subscribers = new Set(); let paused = false; sources.forEach(source => { const srcValue = source(); srcValue._subscribe(() => { if (!paused) { const newVal = deriveFn(...sources.map(s => s().value)); if (newVal !== value) { value = newVal; subscribers.forEach(fn => fn(value)); } } }); }); return () => ({ value, isStateGetter : () => true, _subscribe: (fn) => subscribers.add(fn) }) }