import { formatClock, type RoomState } from '@two-keys/shared'; import { useNow } from '../lib/hooks'; /** Elapsed time plus penalties. Runs locally between server updates. */ export function Timer({ timer, receivedAt }: { timer: RoomState['timer']; receivedAt: number }) { const now = useNow(1000); if (timer.startedAt === null) return null; const serverNow = timer.serverNow + (now - receivedAt); const elapsed = ((timer.finishedAt ?? serverNow) - timer.startedAt) / 1000; return (
{formatClock(elapsed + timer.penaltySeconds)} {timer.penaltySeconds > 0 && ( +{formatClock(timer.penaltySeconds)} )}
); }