diff --git a/client/src/views/DemoGame.vue b/client/src/views/DemoGame.vue index 86290b0..6a1fc68 100644 --- a/client/src/views/DemoGame.vue +++ b/client/src/views/DemoGame.vue @@ -218,11 +218,15 @@ const myRole = computed(() => { }); const roundState = computed(() => ({ + // tick to recompute when non-ref state fields change via forceUpdate() + _tick: refreshTick.value, + isFinished: (gameStatus.value || '').toLowerCase() === 'finished', currentVariant: currentVariant.value, currentRound: currentRound.value, p1Action: p1Action.value, p2Action: p2Action.value, forcedByP2: forcedByP2.value, + g2ForcePending: roomOffer('g2ForcePending'), reported: reported.value, shameAssigned: shameAssigned.value, offer: { @@ -270,6 +274,7 @@ onMounted(() => { $(room.state).listen("p1Action", (value: string) => { p1Action.value = value; }); $(room.state).listen("p2Action", (value: string) => { p2Action.value = value; }); $(room.state).listen("forcedByP2", (value: boolean) => { forcedByP2.value = value; }); + $(room.state).listen("g2ForcePending", () => forceUpdate()); $(room.state).listen("reported", (value: boolean) => { reported.value = value; }); $(room.state).listen("shameAssigned", (value: boolean) => { shameAssigned.value = value; }); // Offer fields diff --git a/client/src/views/games/G2.vue b/client/src/views/games/G2.vue index 717eed4..a3bf769 100644 --- a/client/src/views/games/G2.vue +++ b/client/src/views/games/G2.vue @@ -1,7 +1,13 @@