43 lines
867 B
JavaScript
43 lines
867 B
JavaScript
import React from "react";
|
|
import { getItems } from "./api";
|
|
import { API_ERROR_MESSAGE } from '../../../constants'
|
|
|
|
function useItems(apiStatus, setApiStatus) {
|
|
const [items, setItems] = React.useState({
|
|
list: [],
|
|
isError: false,
|
|
isLoading: true,
|
|
errorMessage: '',
|
|
});
|
|
|
|
React.useEffect(() => {
|
|
if (apiStatus.show)
|
|
getItems().then(handleSuccess, handleFailure);
|
|
}, [apiStatus]);
|
|
|
|
React.useEffect(() => {
|
|
getItems().then(handleSuccess, handleFailure);
|
|
}, []);
|
|
|
|
function handleSuccess(response) {
|
|
setItems({
|
|
list: response || [],
|
|
isError: false,
|
|
isLoading: false,
|
|
errorMessage: '',
|
|
});
|
|
}
|
|
|
|
function handleFailure(error) {
|
|
setItems({
|
|
list: [],
|
|
isError: true,
|
|
isLoading: false,
|
|
errorMessage: error.message,
|
|
});
|
|
}
|
|
|
|
return items;
|
|
}
|
|
|
|
export default useItems;
|