Fix AIChat fullscreen
- Rewire AIChat fullscreen to use browser API via useBrowserFullscreen - Sync Enter/Exit fullscreen with isFullscreen state, add Escape handling to exit - Ensure UI truly fills viewport when fullscreen is active - Preserve audio/visual behavior while fullscreen toggles X-Lovable-Edit-ID: edt-be129ed3-9a30-4285-94f2-529128fbc0e4
This commit is contained in:
+4
-12
@@ -8,7 +8,6 @@ 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 {
|
||||
@@ -83,7 +82,6 @@ const AIChat = () => {
|
||||
const { playSound } = useSettings();
|
||||
const { checkAiAchievements } = useAchievements();
|
||||
const { toast } = useToast();
|
||||
const { enterFullscreen, exitFullscreen } = useBrowserFullscreen();
|
||||
|
||||
// Persist messages to localStorage
|
||||
useEffect(() => {
|
||||
@@ -106,27 +104,21 @@ const AIChat = () => {
|
||||
}
|
||||
}, [customApiConfig]);
|
||||
|
||||
// Exit fullscreen on Escape key
|
||||
// Exit fullscreen on Escape key
|
||||
useEffect(() => {
|
||||
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, exitFullscreen]);
|
||||
}, [isFullscreen, playSound]);
|
||||
|
||||
const toggleFullscreen = async () => {
|
||||
if (!isFullscreen) {
|
||||
setIsFullscreen(true);
|
||||
await enterFullscreen();
|
||||
} else {
|
||||
setIsFullscreen(false);
|
||||
await exitFullscreen();
|
||||
}
|
||||
const toggleFullscreen = () => {
|
||||
setIsFullscreen(prev => !prev);
|
||||
playSound('click');
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user