mirror of
https://github.com/randyjc/Rahoot.git
synced 2026-03-13 20:15:35 +01:00
clean resume state when pausing game
This commit is contained in:
@@ -26,6 +26,7 @@ const ManagerGame = () => {
|
||||
useManagerStore()
|
||||
const { setQuestionStates } = useQuestionStore()
|
||||
const [cooldownPaused, setCooldownPaused] = useState(false)
|
||||
const [breakActive, setBreakActive] = useState(false)
|
||||
const { players } = useManagerStore()
|
||||
|
||||
useEvent("game:status", ({ name, data }) => {
|
||||
@@ -73,6 +74,9 @@ const ManagerGame = () => {
|
||||
setCooldownPaused(isPaused)
|
||||
})
|
||||
|
||||
useEvent("game:break", (active) => setBreakActive(active))
|
||||
useEvent("manager:break", (active) => setBreakActive(active))
|
||||
|
||||
const handleSkip = () => {
|
||||
if (!gameId) {
|
||||
return
|
||||
@@ -115,6 +119,11 @@ const ManagerGame = () => {
|
||||
}
|
||||
}
|
||||
|
||||
const handleBreakToggle = () => {
|
||||
if (!gameId) return
|
||||
socket?.emit("manager:setBreak", { gameId, active: !breakActive })
|
||||
}
|
||||
|
||||
const handleEndGame = () => {
|
||||
if (!gameId) return
|
||||
socket?.emit("manager:endGame", { gameId })
|
||||
@@ -173,6 +182,8 @@ const ManagerGame = () => {
|
||||
showPause={
|
||||
status?.name === STATUS.SHOW_QUESTION || status?.name === STATUS.SELECT_ANSWER
|
||||
}
|
||||
onBreakToggle={handleBreakToggle}
|
||||
breakActive={breakActive}
|
||||
onEnd={handleEndGame}
|
||||
players={players}
|
||||
manager
|
||||
|
||||
@@ -21,6 +21,8 @@ type Props = PropsWithChildren & {
|
||||
onEnd?: () => void
|
||||
players?: { id: string; username: string; connected: boolean }[]
|
||||
manager?: boolean
|
||||
onBreakToggle?: () => void
|
||||
breakActive?: boolean
|
||||
}
|
||||
|
||||
const GameWrapper = ({
|
||||
@@ -33,6 +35,8 @@ const GameWrapper = ({
|
||||
onEnd,
|
||||
players,
|
||||
manager,
|
||||
onBreakToggle,
|
||||
breakActive,
|
||||
}: Props) => {
|
||||
const { isConnected } = useSocket()
|
||||
const { player } = usePlayerStore()
|
||||
@@ -135,6 +139,17 @@ const GameWrapper = ({
|
||||
</Button>
|
||||
)}
|
||||
|
||||
{manager && onBreakToggle && (
|
||||
<Button
|
||||
className={clsx("self-end bg-white px-4 text-black!", {
|
||||
"pointer-events-none": isDisabled,
|
||||
})}
|
||||
onClick={onBreakToggle}
|
||||
>
|
||||
{breakActive ? "Resume game" : "Break"}
|
||||
</Button>
|
||||
)}
|
||||
|
||||
{manager && onEnd && (
|
||||
<Button className="self-end bg-red-600 px-4" onClick={onEnd}>
|
||||
End game
|
||||
|
||||
Reference in New Issue
Block a user