import { useEffect, useState } from "react"; function App() { const [screenStatus, setScreenStatus] = useState< "notfullscreen" | "fullscreen" >("notfullscreen"); const [text, setText] = useState(""); const [imageUrl, setImageUrl] = useState(""); useEffect(() => { const handleFullscreenChange = () => { if (!document.fullscreenElement) { setScreenStatus("notfullscreen"); } else { setScreenStatus("fullscreen"); } }; document.addEventListener("fullscreenchange", handleFullscreenChange); return () => { document.removeEventListener("fullscreenchange", handleFullscreenChange); }; }, []); useEffect(() => { if (screenStatus === "fullscreen") { const handlePullState = () => { fetch( "https://shsf-api.reversed.dev/api/exec/15/1c44d8b5-4065-4a54-b259-748561021329/pull_full", ) .then((response) => response.json()) .then((data) => { setText(data.state?.text ?? ""); setImageUrl(data.state?.image_url ?? ""); }) .catch((error) => { console.error("Error pulling state:", error); }); }; handlePullState(); // Initial pull when entering fullscreen const interval = setInterval(handlePullState, 5000); // Poll every 5 seconds return () => clearInterval(interval); } }, [screenStatus]); return ( <> {screenStatus === "notfullscreen" ? (
Enter fullscreen mode to enter fullscreen mode.