Skip to content

Commit 81d54aa

Browse files
committed
no timer while placing handicap stones
1 parent 8b35d7c commit 81d54aa

File tree

1 file changed

+19
-15
lines changed
  • src/main/client/src/feature/game

1 file changed

+19
-15
lines changed

src/main/client/src/feature/game/Game.jsx

Lines changed: 19 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ import {
3737
createGameState,
3838
isCounting,
3939
gameHasEnded,
40+
isCurrentlyPlacingHandicapStones,
4041
} from "./state.js"
4142
import {
4243
Board,
@@ -70,30 +71,30 @@ export function Game() {
7071
cursorYref.current = cursor_y
7172
let canvasRef = useRef()
7273
let zoom = useViewStateStore(state => state.zoom)
74+
let counting = isCounting(gameState)
75+
let gameEnded = gameHasEnded(gameState)
76+
let placingHandicap = isCurrentlyPlacingHandicapStones(gameState)
77+
let movesLength = gameState.moves.length
7378

7479
let resetCountdown = useCallback(() => {
75-
if (intervalIdRef.current) {
76-
clearInterval(intervalIdRef.current)
80+
let intervalId = intervalIdRef.current
81+
if (intervalId) {
82+
window.clearInterval(intervalId)
83+
}
84+
if (placingHandicap || counting || gameEnded) {
85+
return
7786
}
7887
setTimeRemaining(timesetting)
7988
if (!timesetting) {
8089
return
8190
}
8291
intervalIdRef.current = setInterval(() => {
83-
let gameState = gameStateRef.current
84-
if (!gameState) {
85-
return
86-
}
87-
if (isCounting(gameState) || gameHasEnded(gameState)) {
88-
if (intervalIdRef.current) {
89-
clearInterval(intervalIdRef.current)
90-
}
91-
return
92-
}
9392
let t = timeRemainingRef.current - 1
9493
setTimeRemaining(t)
9594
if (t <= 0) {
96-
clearInterval(intervalIdRef.current)
95+
if (intervalId) {
96+
window.clearInterval(intervalId)
97+
}
9798
window.setTimeout(() => {
9899
stompClient.publish({
99100
destination: "/app/game/move",
@@ -102,7 +103,11 @@ export function Game() {
102103
}, Math.trunc(Math.random() * 200))
103104
}
104105
}, 1000)
105-
}, [setTimeRemaining, timesetting, stompClient])
106+
}, [setTimeRemaining, timesetting, stompClient, counting, gameEnded, placingHandicap])
107+
108+
useEffect(() => {
109+
resetCountdown()
110+
}, [resetCountdown, movesLength])
106111

107112
useEffect(() => {
108113
resetCountdown()
@@ -118,7 +123,6 @@ export function Game() {
118123
let move = JSON.parse(message.body)
119124
let newState = addMove(gameStateRef.current, move)
120125
setGameState(newState)
121-
resetCountdown()
122126
})
123127
return () => {
124128
sub.unsubscribe()

0 commit comments

Comments
 (0)