(null);
+ // Sync fullscreen state with document events
+ useEffect(() => {
+ const handleFullscreenChange = () => {
+ setIsFullscreen(Boolean(document.fullscreenElement));
+ };
+ document.addEventListener('fullscreenchange', handleFullscreenChange);
+ return () => {
+ document.removeEventListener('fullscreenchange', handleFullscreenChange);
+ };
+ }, []);
+
// Fast-path IndexedDB restore with silent background verification
useEffect(() => {
let isCancelled = false;
@@ -337,14 +351,31 @@ export default function App() {
{BOOK_TITLE}
- {/* Quiet Gear Button */}
-
+ {/* Top Right Action Buttons */}
+
+ {/* Fullscreen Toggle Button */}
+
+
+ {/* Quiet Gear Button */}
+
+
{/* Main RSVPs Central Stream (Instant 0ms display, zero loading mask) */}