UNPKG

informed

Version:

A lightweight framework and utility for building powerful forms in React applications

35 lines (28 loc) 1.06 kB
import { useEffect } from 'react'; import { useInformed } from './useInformed.js'; import { useForceUpdate } from './useForceUpdate.js'; import { Debug } from '../debug.js'; var debug = Debug('informed:useInformedState' + '\t'); /* ----------------------- useFieldState ----------------------- */ var useInformedState = function useInformedState(name) { var _informed$getControll; // Grab informed var informed = useInformed(); // Magic trick var forceUpdate = useForceUpdate(); // Register for events on our field useEffect(function () { var listener = function listener(n) { debug('Updating', n); forceUpdate(); }; informed.emitter.on(name, listener); // When name changes we always force an update! forceUpdate(); return function () { informed.emitter.removeListener(name, listener); }; }, [name]); return (_informed$getControll = informed.getController(name)) === null || _informed$getControll === void 0 ? void 0 : _informed$getControll.getFormState(); }; export { useInformedState };