diff --git a/app/(manage)/manage/games/games-client.tsx b/app/(manage)/manage/games/games-client.tsx index 639cb0f..5532d9d 100644 --- a/app/(manage)/manage/games/games-client.tsx +++ b/app/(manage)/manage/games/games-client.tsx @@ -102,6 +102,7 @@ export function GamesClient() { } setSyncing(true) + setSyncCompleted(false) setSyncProgress({ isRunning: true, current: 0, @@ -208,6 +209,7 @@ export function GamesClient() { return } + setSyncCompleted(false) setSyncProgress({ isRunning: true, current: 0, @@ -302,6 +304,16 @@ export function GamesClient() { }) } + // Close sync overlay on Escape key + useEffect(() => { + if (!syncCompleted) return + const handleKeyDown = (e: KeyboardEvent) => { + if (e.key === "Escape") closeSyncOverlay() + } + document.addEventListener("keydown", handleKeyDown) + return () => document.removeEventListener("keydown", handleKeyDown) + }, [syncCompleted]) + const isSearchChangeRef = useRef(false) const handleSearchChange = (value: string) => { @@ -595,7 +607,12 @@ export function GamesClient() { {(syncProgress.isRunning || syncCompleted) && createPortal(
{syncProgress.current} of {syncProgress.total} games
@@ -642,7 +659,7 @@ export function GamesClient() {{syncProgress.synced} synced, {syncProgress.failed} failed
@@ -698,7 +715,7 @@ export function GamesClient() { {game?.title || gameId} {!result.success && result.error && ( - + {result.error} )}