MCPcopy Create free account
hub / github.com/dailydotdev/apps / RouteProgressBar

Function RouteProgressBar

packages/shared/src/components/RouteProgressBar.tsx:26–69  ·  view source on GitHub ↗
({
  className,
}: RouteProgressBarProps)

Source from the content-addressed store, hash-verified

24 * wrapper) and it floats at the top edge without affecting layout.
25 */
26export const RouteProgressBar = ({
27 className,
28}: RouteProgressBarProps): ReactElement | null => {
29 const router = useRouter();
30 const [isRouteChanging, setIsRouteChanging] = useState(false);
31
32 useEffect(() => {
33 const handleStart = () => setIsRouteChanging(true);
34 const handleEnd = () => setIsRouteChanging(false);
35
36 router.events.on('routeChangeStart', handleStart);
37 router.events.on('routeChangeComplete', handleEnd);
38 router.events.on('routeChangeError', handleEnd);
39
40 return () => {
41 router.events.off('routeChangeStart', handleStart);
42 router.events.off('routeChangeComplete', handleEnd);
43 router.events.off('routeChangeError', handleEnd);
44 };
45 }, [router.events]);
46
47 if (!isRouteChanging) {
48 return null;
49 }
50
51 return (
52 <div
53 role="progressbar"
54 aria-busy="true"
55 aria-label="Loading next page"
56 className={classNames(
57 'pointer-events-none absolute inset-x-0 top-0 z-1 h-0.5 overflow-hidden',
58 className,
59 )}
60 >
61 <div
62 className={classNames(
63 'h-full w-1/4 rounded-full bg-accent-cabbage-default',
64 styles.bar,
65 )}
66 />
67 </div>
68 );
69};

Callers

nothing calls this directly

Calls 1

useRouterFunction · 0.50

Tested by

no test coverage detected