import * as React from 'react' import { useEffect, useState } from 'react' import { NProgress } from './nprogress' export const NProgressNextRouter = ({ router }: any) => { const [state, setState] = useState({ isRouteChanging: false, loadingKey: 0, }) useEffect(() => { const handleRouteChangeStart = () => { setState((prevState) => ({ ...prevState, isRouteChanging: true, loadingKey: prevState.loadingKey ^ 1, })) } const handleRouteChangeEnd = () => { setState((prevState) => ({ ...prevState, isRouteChanging: false, })) } router.events.on('routeChangeStart', handleRouteChangeStart) router.events.on('routeChangeComplete', handleRouteChangeEnd) router.events.on('routeChangeError', handleRouteChangeEnd) return () => { router.events.off('routeChangeStart', handleRouteChangeStart) router.events.off('routeChangeComplete', handleRouteChangeEnd) router.events.off('routeChangeError', handleRouteChangeEnd) } }, [router.events]) const isAnimating = state.isRouteChanging return ( <> ) }