UNPKG

bananahooks

Version:

"Collection" of custom React Hooks.

37 lines (33 loc) 903 B
'use strict'; var React = require('react'); function usePromise(promiseOrFunction, defaultValue) { const [state, setState] = React.useState({ value: defaultValue, error: null, isPending: true }); React.useEffect(() => { const promise = typeof promiseOrFunction === "function" ? promiseOrFunction() : promiseOrFunction; let isSubscribed = true; promise.then(value => isSubscribed ? setState({ value, error: null, isPending: false }) : null).catch(error => isSubscribed ? setState({ value: defaultValue, error: error, isPending: false }) : null); return () => { isSubscribed = false; }; }, [promiseOrFunction, defaultValue]); const { value, error, isPending } = state; return [value, error, isPending]; } exports.usePromise = usePromise; //# sourceMappingURL=bananahooks.cjs.development.js.map