diff options
Diffstat (limited to 'frontend/app/components/GolfWatchApp.client.tsx')
| -rw-r--r-- | frontend/app/components/GolfWatchApp.client.tsx | 26 |
1 files changed, 25 insertions, 1 deletions
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, |
