UNPKG

reactive-blocs

Version:
44 lines (43 loc) 1.36 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.useValue = void 0; const react_1 = require("react"); const isReactive = (field) => { return field.isReactive; }; function useValue(field, label) { let initialValue = isReactive(field) ? field.value : undefined; let value = undefined; let setValue = null; const subscription = (0, react_1.useMemo)(() => { const subscription = field.subscribe((val) => { if (setValue) { setValue(val); } else { initialValue = val; } }); return subscription; }, []); (0, react_1.useEffect)(() => () => subscription.unsubscribe(), []); [value, setValue] = (0, react_1.useState)(initialValue); return value; } exports.useValue = useValue; // export function useExec<T, A = any>(exec: (args: A) => any, args?: A) { // const argsRef = useRef<A>(null); // useMemo(() => { // if (args == undefined) { // return; // } // if (isPlainObject(args)) { // if(!argsRef.current || !compare(argsRef.current, args)) { // exec(args); // argsRef.current = args; // } // } else { // exec(args); // } // }, [args, argsRef.current]); // };