From 7453eaaaf18827209ea296319b8b4bc38bde0950 Mon Sep 17 00:00:00 2001 From: nsfisis Date: Sun, 11 Aug 2024 23:11:42 +0900 Subject: feat(frontend): allow users to re-connect --- frontend/app/components/GolfWatchApp.client.tsx | 26 ++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) (limited to 'frontend/app/components/GolfWatchApp.client.tsx') diff --git a/frontend/app/components/GolfWatchApp.client.tsx b/frontend/app/components/GolfWatchApp.client.tsx index cef6f9a..448a966 100644 --- a/frontend/app/components/GolfWatchApp.client.tsx +++ b/frontend/app/components/GolfWatchApp.client.tsx @@ -194,11 +194,35 @@ export default function GolfWatchApp({ }); } } else { - setGameState("waiting"); + if (game.started_at) { + const nowSec = Math.floor(Date.now() / 1000); + if (game.started_at <= nowSec) { + // The game has already started. + if (gameState !== "gaming" && gameState !== "finished") { + setStartedAt(game.started_at); + setLeftTimeSeconds(0); + setGameState("gaming"); + } + } else { + // The game is starting. + if ( + gameState !== "starting" && + gameState !== "gaming" && + gameState !== "finished" + ) { + setStartedAt(game.started_at); + setLeftTimeSeconds(game.started_at - nowSec); + setGameState("starting"); + } + } + } else { + setGameState("waiting"); + } } } }, [ game.verification_steps, + game.started_at, lastJsonMessage, readyState, gameState, -- cgit v1.2.3-70-g09d2