import { useEffect } from 'react'; import axios from 'axios'; /** * @description Hooks an axios error interceptor for your react application */ const useErrorHandler = () => { const errorInterceptor = axios.interceptors.response.use( res => res, error => { if (error?.response?.status) { switch (error.response.status) { case 401: // Actions for Error 401 throw error; case 500: // Actions for Error 500 throw error; default: console.error('from hook interceptor => ', error); throw error; } } else { // Occurs for axios error.message = 'Network Error' throw error; } } ); useEffect(() => { return () => { axios.interceptors.response.eject(errorInterceptor); }; }); }; export default useErrorHandler;