File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 1+ import { useEffect } from "react" ;
2+ import { useRouter } from "next/router" ;
3+ import NProgress from "nprogress" ;
4+ import "nprogress/nprogress.css" ;
5+
6+ // Customizing the progress bar speed and look
7+ NProgress . configure ( { showSpinner : false , speed : 500 , minimum : 0.2 } ) ;
8+
9+ const ProgressBar = ( ) => {
10+ const router = useRouter ( ) ;
11+
12+ useEffect ( ( ) => {
13+ const handleStart = ( ) => {
14+ NProgress . start ( ) ;
15+ } ;
16+ const handleStop = ( ) => {
17+ setTimeout ( ( ) => NProgress . done ( ) , 500 ) ; // Delay finishing to prevent flashing
18+ } ;
19+
20+ router . events . on ( "routeChangeStart" , handleStart ) ;
21+ router . events . on ( "routeChangeComplete" , handleStop ) ;
22+ router . events . on ( "routeChangeError" , handleStop ) ;
23+
24+ return ( ) => {
25+ router . events . off ( "routeChangeStart" , handleStart ) ;
26+ router . events . off ( "routeChangeComplete" , handleStop ) ;
27+ router . events . off ( "routeChangeError" , handleStop ) ;
28+ } ;
29+ } , [ router ] ) ;
30+
31+ return null ;
32+ } ;
33+
34+ export default ProgressBar ;
You can’t perform that action at this time.
0 commit comments