diff --git a/client/components/FreeChaseBanner.tsx b/client/components/FreeChaseBanner.tsx index 59d7aa0..184e4db 100644 --- a/client/components/FreeChaseBanner.tsx +++ b/client/components/FreeChaseBanner.tsx @@ -7,13 +7,13 @@ import { Banner, MD3Colors, ProgressBar, Text } from "react-native-paper" export default function FreeChaseBanner() { const game = useGame() const chaseFreeTime = game.chaseFreeTime - const chaser = !game.gameStarted && !game.currentRunner && chaseFreeTime !== null + const chaser = game.gameStarted && !game.currentRunner && chaseFreeTime !== null const chaseFreeDate = useMemo(() => new Date(chaseFreeTime || 0), [chaseFreeTime]) const chaseFreePretty = chaseFreeDate.toLocaleTimeString(undefined, { hour: '2-digit', minute: '2-digit' }) const [remainingTime, setRemainingTime] = useState(0) const prettyRemainingTime = useMemo(() => `${Math.floor(remainingTime / 60).toString().padStart(2, '0')}:${Math.floor(remainingTime % 60).toString().padStart(2, '0')}`, [remainingTime]) const iconName = useMemo(() => { - switch (Math.abs(remainingTime % 4)) { + switch (Math.abs(Math.floor(remainingTime) % 4)) { case 0: return 'hourglass-empty' case 1: return 'hourglass-end' case 2: return 'hourglass-half' @@ -25,7 +25,7 @@ export default function FreeChaseBanner() { const now = new Date().getTime() if (!chaser || (chaseFreeTime < now && remainingTime < 0)) return - const interval = setInterval(() => setRemainingTime(Math.floor(chaseFreeTime - now) / 1000), 1000) + const interval = setInterval(() => setRemainingTime(Math.floor(chaseFreeTime - new Date().getTime()) / 1000), 1000) return () => clearInterval(interval) }, [game.gameStarted, game.currentRunner, chaseFreeDate])