UNPKG

react-axios-progressbar

Version:

Show a ProgressBar in React whenever an axios request is in progress.

32 lines (31 loc) 1.2 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.useActiveRequests = useActiveRequests; const react_1 = require("react"); function useActiveRequests(axiosInstance) { const [activeRequests, setActiveRequests] = (0, react_1.useState)(0); function onNewRequest(config) { setActiveRequests(activeRequests + 1); return config; } function decreaseActiveRequests() { setActiveRequests(Math.max(activeRequests - 1, 0)); } function onRequestFulfilled(response) { decreaseActiveRequests(); return response; } function onRequestRejected(error) { decreaseActiveRequests(); return Promise.reject(error); } (0, react_1.useEffect)(() => { const requestInterceptor = axiosInstance.interceptors.request.use(onNewRequest); const responseInterceptor = axiosInstance.interceptors.response.use(onRequestFulfilled, onRequestRejected); return () => { axiosInstance.interceptors.request.eject(requestInterceptor); axiosInstance.interceptors.response.eject(responseInterceptor); }; }, [axiosInstance]); return activeRequests; }