aboutsummaryrefslogtreecommitdiffhomepage
path: root/frontend/app/components/GolfWatchApp.client.tsx
diff options
context:
space:
mode:
authornsfisis <nsfisis@gmail.com>2024-08-21 02:46:37 +0900
committernsfisis <nsfisis@gmail.com>2024-08-21 02:46:37 +0900
commit483e297f4789fb1fdaa241f87686a00ef55a046d (patch)
treef4227c503ce82ffeba84603f872f7237fbee8ea7 /frontend/app/components/GolfWatchApp.client.tsx
parent0765f61a494de1f284042ba56382983d58d5a6f5 (diff)
parent5dba0da3efae63cab5313582a17f20dbb41c6450 (diff)
downloadiosdc-japan-2024-albatross-483e297f4789fb1fdaa241f87686a00ef55a046d.tar.gz
iosdc-japan-2024-albatross-483e297f4789fb1fdaa241f87686a00ef55a046d.tar.zst
iosdc-japan-2024-albatross-483e297f4789fb1fdaa241f87686a00ef55a046d.zip
Merge branch 'feat/audio'
Diffstat (limited to 'frontend/app/components/GolfWatchApp.client.tsx')
-rw-r--r--frontend/app/components/GolfWatchApp.client.tsx16
1 files changed, 11 insertions, 5 deletions
diff --git a/frontend/app/components/GolfWatchApp.client.tsx b/frontend/app/components/GolfWatchApp.client.tsx
index 22f87fa..d09a4ae 100644
--- a/frontend/app/components/GolfWatchApp.client.tsx
+++ b/frontend/app/components/GolfWatchApp.client.tsx
@@ -1,4 +1,5 @@
import { useEffect, useState } from "react";
+import { AudioController } from "../.client/audio/AudioController";
import type { components } from "../.server/api/schema";
import useWebSocket, { ReadyState } from "../hooks/useWebSocket";
import type { PlayerInfo } from "../models/PlayerInfo";
@@ -14,13 +15,17 @@ type Game = components["schemas"]["Game"];
type GameState = "connecting" | "waiting" | "starting" | "gaming" | "finished";
+export type Props = {
+ game: Game;
+ sockToken: string;
+ audioController: AudioController;
+};
+
export default function GolfWatchApp({
game,
sockToken,
-}: {
- game: Game;
- sockToken: string;
-}) {
+ audioController,
+}: Props) {
const socketUrl =
process.env.NODE_ENV === "development"
? `ws://localhost:8002/iosdc-japan/2024/code-battle/sock/golf/${game.game_id}/watch?token=${sockToken}`
@@ -53,6 +58,7 @@ export default function GolfWatchApp({
if (nowSec >= finishedAt) {
clearInterval(timer);
setGameState("finished");
+ audioController.playSoundEffectFinish();
} else {
setGameState("gaming");
}
@@ -65,7 +71,7 @@ export default function GolfWatchApp({
clearInterval(timer);
};
}
- }, [gameState, startedAt, game.duration_seconds]);
+ }, [gameState, startedAt, game.duration_seconds, audioController]);
const playerA = game.players[0];
const playerB = game.players[1];