UNPKG

@playbooks/hooks

Version:

A collection of React hooks for Playbooks.

40 lines (39 loc) 1.19 kB
import { useState, useEffect } from "react"; const useNavigationStart = (router, method) => { const [active, setActive] = useState(false); useEffect(() => { router.events.on("routeChangeStart", () => setActive(true)); if (active) method(); return () => { router.events.off("routeChangeStart", () => setActive(false)); }; }, [active, router.asPath]); return active; }; const useNavigationComplete = (router, method) => { const [active, setActive] = useState(false); useEffect(() => { router.events.on("routeChangeComplete", () => setActive(true)); if (active) method(); return () => { router.events.off("routeChangeComplete", () => setActive(false)); }; }, [active, router.asPath]); return active; }; const useNavigationError = (router, method) => { const [active, setActive] = useState(false); useEffect(() => { router.events.on("routeChangeError", () => setActive(true)); if (active) method(); return () => { router.events.off("routeChangeError", () => setActive(false)); }; }, [active, router.asPath]); return active; }; export { useNavigationComplete, useNavigationError, useNavigationStart };