@vergiss/chooks
Version:
React hooks library
35 lines (31 loc) • 707 B
JavaScript
import { useEffect, useState } from 'react';
function useFetch(service
/*, options?: IUseFetchOptions*/
) {
var _a = useState('pending'),
status = _a[0],
setStatus = _a[1];
var _b = useState(null),
result = _b[0],
setResult = _b[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'
};
}
export { useFetch };