@vergiss/chooks
Version:
React hooks library
43 lines (37 loc) • 886 B
JavaScript
;
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;