@@ -48,15 +48,20 @@ const useStyles = makeStyles((theme) => ({
4848 } ,
4949} ) ) ;
5050
51- function GameSidebar ( { game, scores, leaderboard, pause, endedAt } ) {
52- const classes = useStyles ( ) ;
53- const { pathname } = useLocation ( ) ;
54- const time = useMoment ( 500 ) ;
51+ function GameTime ( { startedAt, endedAt, pause } ) {
52+ const time = useMoment ( endedAt ? 0 : 500 ) ;
5553 const gameTime = endedAt || time ;
5654 const pauseEnd = pause ?. end ?? gameTime ;
5755 const pauseTime =
5856 ( pause ?. previous ?? 0 ) +
5957 ( pause ?. start < pauseEnd ? pauseEnd - pause . start : 0 ) ;
58+ // Hide the sub-second time resolution while game is active.
59+ return < > { formatTime ( gameTime - startedAt - pauseTime , ! endedAt ) } </ > ;
60+ }
61+
62+ function GameSidebar ( { game, scores, leaderboard, pause, endedAt } ) {
63+ const classes = useStyles ( ) ;
64+ const { pathname } = useLocation ( ) ;
6065
6166 return (
6267 < Paper className = { classes . sidebar } >
@@ -82,9 +87,11 @@ function GameSidebar({ game, scores, leaderboard, pause, endedAt }) {
8287 />
8388 ) }
8489 < Typography variant = "h4" align = "center" >
85- { /* Hide the sub-second time resolution while game is active to
86- avoid stressing beginners. */ }
87- { formatTime ( gameTime - game . startedAt - pauseTime , ! endedAt ) }
90+ < GameTime
91+ startedAt = { game . startedAt }
92+ endedAt = { endedAt }
93+ pause = { pause }
94+ />
8895 </ Typography >
8996 </ div >
9097 < Divider style = { { margin : "8px 0" } } />
0 commit comments