UNPKG

@vergiss/chooks

Version:
43 lines (37 loc) 886 B
"use strict"; import "core-js/modules/es.object.define-property"; Object.defineProperty(exports, "__esModule", { value: true }); exports.useFetch = void 0; var react_1 = require("react"); function useFetch(service /*, options?: IUseFetchOptions*/ ) { var _a = react_1.useState('pending'), status = _a[0], setStatus = _a[1]; var _b = react_1.useState(null), result = _b[0], setResult = _b[1]; react_1.useEffect(function () { var fetchResult = service(); fetchResult.then(function (r) { setResult(r); setStatus('resolved'); }, function (err) { result.current = err; setStatus('error'); }); return function () { setStatus('pending'); setResult(null); }; }, [service]); return { result: result, status: status, loading: status === 'pending' }; } exports.useFetch = useFetch;