import React, { useEffect, useState } from 'react'; import { Button } from '../common/Button'; interface FullscreenButtonProps { containerRef: React.RefObject; } /** * FullscreenButton component provides a toggle for fullscreen mode * * @param containerRef - Reference to the container element to make fullscreen. * * @returns The rendered FullscreenButton component. */ export default function FullscreenButton({ containerRef }: FullscreenButtonProps): JSX.Element { const [isFullscreen, setIsFullscreen] = useState(false); useEffect(() => { const handleFullscreenChange = () => { setIsFullscreen(!!document.fullscreenElement); }; document.addEventListener('fullscreenchange', handleFullscreenChange); return () => { document.removeEventListener('fullscreenchange', handleFullscreenChange); }; }, []); const toggleFullscreen = () => { if (!document.fullscreenElement && containerRef.current) { containerRef.current.requestFullscreen().catch(err => { console.error(`Error attempting to enable fullscreen: ${err.message}`); }); } else if (document.fullscreenElement) { document.exitFullscreen().catch(err => { console.error(`Error attempting to exit fullscreen: ${err.message}`); }); } }; return (
); }