github.com/turbot/steampipe@v1.7.0-rc.0.0.20240517123944-7cef272d4458/ui/dashboard/src/hooks/useMediaMode.ts (about)

     1  import { useEffect, useState } from "react";
     2  
     3  export type MediaMode = "screen" | "print";
     4  
     5  const useMediaMode = () => {
     6    const [mediaMode, setMediaMode] = useState<MediaMode>("screen");
     7    useEffect(() => {
     8      const mediaQuery = window.matchMedia("print");
     9      const changeHandler = (e) => {
    10        if (e.matches) {
    11          setMediaMode("print");
    12        } else {
    13          setMediaMode("screen");
    14        }
    15      };
    16      mediaQuery.addEventListener("change", changeHandler);
    17      return () => mediaQuery.removeEventListener("change", changeHandler);
    18    }, []);
    19    return mediaMode;
    20  };
    21  
    22  export default useMediaMode;