fix: preserve fullscreen mode when navigating from arcade to memory matching game
- Add FullscreenProvider to memory matching game page - Add FullscreenProvider wrapper to arcade page - Handle ?fullscreen=true URL parameter in MemoryPairsGame component - Ensure fullscreen mode persists when clicking games from arcade - GameCard component already passes fullscreen parameter when navigating from arcade This fixes the issue where entering fullscreen in arcade and then clicking memory pairs would exit fullscreen mode. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -103,7 +103,11 @@ function ArcadeContent() {
|
||||
}
|
||||
|
||||
export default function ArcadePage() {
|
||||
return <ArcadeContent />
|
||||
return (
|
||||
<FullscreenProvider>
|
||||
<ArcadeContent />
|
||||
</FullscreenProvider>
|
||||
)
|
||||
}
|
||||
|
||||
// Arcade-specific animations
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
'use client'
|
||||
|
||||
import { useEffect } from 'react'
|
||||
import { useMemoryPairs } from '../context/MemoryPairsContext'
|
||||
import { useFullscreen } from '../../../../contexts/FullscreenContext'
|
||||
import { SetupPhase } from './SetupPhase'
|
||||
import { GamePhase } from './GamePhase'
|
||||
import { ResultsPhase } from './ResultsPhase'
|
||||
@@ -8,6 +10,15 @@ import { css } from '../../../../../styled-system/css'
|
||||
|
||||
export function MemoryPairsGame() {
|
||||
const { state } = useMemoryPairs()
|
||||
const { enterFullscreen } = useFullscreen()
|
||||
|
||||
useEffect(() => {
|
||||
// Check if we should enter fullscreen (from URL parameter)
|
||||
const urlParams = new URLSearchParams(window.location.search)
|
||||
if (urlParams.get('fullscreen') === 'true') {
|
||||
enterFullscreen()
|
||||
}
|
||||
}, [enterFullscreen])
|
||||
|
||||
return (
|
||||
<div className={css({
|
||||
|
||||
@@ -1,16 +1,19 @@
|
||||
import { MemoryPairsProvider } from './context/MemoryPairsContext'
|
||||
import { UserProfileProvider } from '../../../contexts/UserProfileContext'
|
||||
import { GameModeProvider } from '../../../contexts/GameModeContext'
|
||||
import { FullscreenProvider } from '../../../contexts/FullscreenContext'
|
||||
import { MemoryPairsGame } from './components/MemoryPairsGame'
|
||||
|
||||
export default function MatchingPage() {
|
||||
return (
|
||||
<UserProfileProvider>
|
||||
<GameModeProvider>
|
||||
<MemoryPairsProvider>
|
||||
<MemoryPairsGame />
|
||||
</MemoryPairsProvider>
|
||||
</GameModeProvider>
|
||||
</UserProfileProvider>
|
||||
<FullscreenProvider>
|
||||
<UserProfileProvider>
|
||||
<GameModeProvider>
|
||||
<MemoryPairsProvider>
|
||||
<MemoryPairsGame />
|
||||
</MemoryPairsProvider>
|
||||
</GameModeProvider>
|
||||
</UserProfileProvider>
|
||||
</FullscreenProvider>
|
||||
)
|
||||
}
|
||||
Reference in New Issue
Block a user