diff --git a/src/pages/AIChat.tsx b/src/pages/AIChat.tsx index fad3735..b0b9ae5 100644 --- a/src/pages/AIChat.tsx +++ b/src/pages/AIChat.tsx @@ -8,6 +8,7 @@ import { useSettings } from '@/contexts/SettingsContext'; import { useAchievements, incrementAiMessageCount } from '@/contexts/AchievementsContext'; import { useToast } from '@/hooks/use-toast'; import GlitchText from '@/components/GlitchText'; +import { useBrowserFullscreen } from '@/hooks/useGameDimensions'; import MessageContent from '@/components/MessageContent'; import { AI_PROVIDERS, AIProvider, getProvider, CUSTOM_API_STORAGE_KEY } from '@/lib/aiProviders'; import { @@ -82,6 +83,7 @@ const AIChat = () => { const { playSound } = useSettings(); const { checkAiAchievements } = useAchievements(); const { toast } = useToast(); + const { enterFullscreen, exitFullscreen } = useBrowserFullscreen(); // Persist messages to localStorage useEffect(() => { @@ -109,12 +111,24 @@ const AIChat = () => { const handleEscape = (e: KeyboardEvent) => { if (e.key === 'Escape' && isFullscreen) { setIsFullscreen(false); + exitFullscreen(); playSound('click'); } }; window.addEventListener('keydown', handleEscape); return () => window.removeEventListener('keydown', handleEscape); - }, [isFullscreen, playSound]); + }, [isFullscreen, playSound, exitFullscreen]); + + const toggleFullscreen = async () => { + if (!isFullscreen) { + setIsFullscreen(true); + await enterFullscreen(); + } else { + setIsFullscreen(false); + await exitFullscreen(); + } + playSound('click'); + }; useEffect(() => { if (scrollRef.current) { @@ -367,10 +381,6 @@ const AIChat = () => { } }; - const toggleFullscreen = () => { - setIsFullscreen(!isFullscreen); - playSound('click'); - }; return (