UNPKG

informed

Version:

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

35 lines (30 loc) 986 B
'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); var _rollupPluginBabelHelpers = require('../_virtual/_rollupPluginBabelHelpers.js'); var React = require('react'); var useEffectOnce = require('./useEffectOnce.js'); // TODO figure out if this is bad? // https://github.com/facebook/react/issues/14543 function useStateWithGetter(initial) { var ref = React.useRef(); var mounted = React.useRef(true); var _useState = React.useState(initial), _useState2 = _rollupPluginBabelHelpers.slicedToArray(_useState, 2), state = _useState2[0], setState = _useState2[1]; ref.current = state; var set = function set(value) { ref.current = value; if (mounted.current) setState(value); }; var get = function get() { return ref.current; }; useEffectOnce.useEffectOnce(function () { return function () { mounted.current = false; }; }); return [state, set, get]; } exports.useStateWithGetter = useStateWithGetter;