import { useEffect, useState, useCallback, useRef } from "react"; import { Button } from "@headlessui/react"; import { Minimize2, Maximize2 } from "lucide-react"; export function FullScreen(props: any) { const { children, right = 10, top = 10, ...rest } = props; const ref = useRef(); const [fullScreen, setFullScreen] = useState(false); const toggleFullscreen = useCallback(() => { if (!document.fullscreenElement) { ref.current?.requestFullscreen(); } else { document.exitFullscreen(); } }, []); useEffect(() => { const handleScreenChange = (e: any) => { if (e.target === ref.current) { setFullScreen(!!document.fullscreenElement); } }; document.addEventListener("fullscreenchange", handleScreenChange); return () => { document.removeEventListener("fullscreenchange", handleScreenChange); }; }, []); return (
{children}
); }