UNPKG

use-state-promise

Version:

A custom useState hook with support for Promise

25 lines 809 B
import { useCallback, useEffect, useRef, useState } from 'react'; export const useStatePromise = (initialState, skipFirst = true) => { const [state, setState] = useState(initialState); const first = useRef(skipFirst); const resolver = useRef(null); const setStatePromise = useCallback((value) => { setState(value); return new Promise((resolve) => { resolver.current = resolve; }); }, []); useEffect(() => { if (first.current) { first.current = false; return; } if (resolver.current) { resolver.current(state); resolver.current = null; } }, [state]); return [state, setStatePromise, setState]; }; export default useStatePromise; //# sourceMappingURL=index.js.map