const subscribeRouteChangeStartFunction = dispatch => { const handleRouteChange = url => { if (url !== '/login') { dispatch(setMessage('')); Router.events.off('routeChangeStart', handleRouteChange); } }; Router.events.on('routeChangeStart', handleRouteChange); }
useEffect(() => { function routeChangeStart(url: string) { setLoading(true); } function routeChangeComplete(url: string) { setLoading(false); } Router.events.on('routeChangeStart', routeChangeStart); Router.events.on('routeChangeComplete', routeChangeComplete); return () => { Router.events.off('routeChangeStart', routeChangeStart); Router.events.off('routeChangeComplete', routeChangeComplete); }; }, []);
try { window.removeEventListener('beforeunload', trackViewingTime); Router.events.off('routeChangeStart', trackViewingTime); } catch (error) {} };
try { window.removeEventListener('beforeunload', trackViewingTime); Router.events.off('routeChangeStart', trackViewingTime); } catch (error) {} };
const LoadingIndicator = () => { function handleRouteChangeStart() { NProgress.start(); } function handleRouteChangeComplete() { NProgress.done(); } useEffect(() => { Router.events.on('routeChangeStart', handleRouteChangeStart); Router.events.on('routeChangeComplete', handleRouteChangeComplete); return () => { Router.events.off('routeChangeStart', handleRouteChangeStart); Router.events.off('routeChangeComplete', handleRouteChangeComplete); }; }, []); NProgress.configure({ showSpinner: false, parent: '.loading-indicator-wrapper', }); return <LoadingIndicatorWrapper />; }