UNPKG

use-state-promise

Version:

A custom useState hook with support for Promise

30 lines 1.05 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.useStatePromise = void 0; var react_1 = require("react"); var useStatePromise = function (initialState, skipFirst) { if (skipFirst === void 0) { skipFirst = true; } var _a = react_1.useState(initialState), state = _a[0], setState = _a[1]; var first = react_1.useRef(skipFirst); var resolver = react_1.useRef(null); var setStatePromise = react_1.useCallback(function (value) { setState(value); return new Promise(function (resolve) { resolver.current = resolve; }); }, []); react_1.useEffect(function () { if (first.current) { first.current = false; return; } if (resolver.current) { resolver.current(state); resolver.current = null; } }, [state]); return [state, setStatePromise, setState]; }; exports.useStatePromise = useStatePromise; exports.default = exports.useStatePromise; //# sourceMappingURL=index.js.map