UNPKG

fluidstate-preact

Version:

Library for using fine-grained reactivity state management library fluidstate in Preact

34 lines (32 loc) 1.07 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.Effect = void 0; var _reactiveLayerHackyUtils = require("./reactive-layer-hacky-utils"); const PreactEffect = (0, _reactiveLayerHackyUtils.getPreactEffectClass)(); const callbackPropertyName = (0, _reactiveLayerHackyUtils.getCallbackName)(); /** * Extension of `@preact/signals-core` Effect in order to add * the ability to schedule effects. A variety of hacky deductions * are made in order to extend the preact's Effect class */ class Effect extends PreactEffect { constructor(fn, options) { super(fn); this.options = options; this[callbackPropertyName](); } [callbackPropertyName]() { if (this.options?.scheduler) { this.options.scheduler(PreactEffect.prototype[callbackPropertyName].bind(this)); } else { PreactEffect.prototype[callbackPropertyName].call(this); } } stop() { return this[(0, _reactiveLayerHackyUtils.getDisposePropertyName)()](); } } exports.Effect = Effect; //# sourceMappingURL=relative-layer-effect.js.map