@livelike/react-native
Version:
LiveLike React Native package
31 lines (30 loc) • 724 B
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.useApi = useApi;
var _react = require("react");
function useApi(apiFunction) {
const [data, setData] = (0, _react.useState)(null);
const [isLoading, setIsLoading] = (0, _react.useState)(false);
const [error, setError] = (0, _react.useState)('');
const onApi = () => {
setIsLoading(true);
return apiFunction().then(response => {
setData(response);
return response;
}).catch(error => {
setError(error);
return Promise.reject(error);
}).finally(() => {
setIsLoading(false);
});
};
return {
data,
error,
isLoading,
onApi
};
}
//# sourceMappingURL=useApi.js.map