From 18308a22879dc9143a03bcbe53cf0c5e8e49ee1f Mon Sep 17 00:00:00 2001 From: nsfisis Date: Sat, 27 Jul 2024 01:17:37 +0900 Subject: remix --- frontend/src/routes/golf/watch/App.tsx | 111 --------------------- frontend/src/routes/golf/watch/WatchState.ts | 7 -- frontend/src/routes/golf/watch/apps/Connecting.tsx | 7 -- frontend/src/routes/golf/watch/apps/Failed.tsx | 7 -- frontend/src/routes/golf/watch/apps/Gaming.tsx | 44 -------- frontend/src/routes/golf/watch/apps/Waiting.tsx | 7 -- 6 files changed, 183 deletions(-) delete mode 100644 frontend/src/routes/golf/watch/App.tsx delete mode 100644 frontend/src/routes/golf/watch/WatchState.ts delete mode 100644 frontend/src/routes/golf/watch/apps/Connecting.tsx delete mode 100644 frontend/src/routes/golf/watch/apps/Failed.tsx delete mode 100644 frontend/src/routes/golf/watch/apps/Gaming.tsx delete mode 100644 frontend/src/routes/golf/watch/apps/Waiting.tsx (limited to 'frontend/src/routes/golf/watch') diff --git a/frontend/src/routes/golf/watch/App.tsx b/frontend/src/routes/golf/watch/App.tsx deleted file mode 100644 index ac2db23..0000000 --- a/frontend/src/routes/golf/watch/App.tsx +++ /dev/null @@ -1,111 +0,0 @@ -import { useState, useEffect } from "react"; -import useWebSocket, { ReadyState } from "react-use-websocket"; -import Connecting from "./apps/Connecting.jsx"; -import Waiting from "./apps/Waiting.jsx"; -import Gaming from "./apps/Gaming.jsx"; -import Failed from "./apps/Failed.jsx"; -import type { WatchState } from "./WatchState.js"; - -type Props = { - gameId: number; -}; - -type WebSocketMessage = - | { type: "connect" } - | { type: "prepare"; data: { problem: string } } - | { type: "ready" } - | { type: "start"; data: { startTime: string } } - | { - type: "finish"; - data: { yourScore: number | null; opponentScore: number | null }; - } - | { type: "score"; data: { score: number } } - | { type: "code"; data: { code: string } } - | { - type: "watch"; - data: { - problem: string; - scoreA: number | null; - codeA: string; - scoreB: number | null; - codeB: string; - }; - }; - -export default function App({ gameId }: Props) { - // const socketUrl = `wss://t.nil.ninja/iosdc/2024/sock/golf/${gameId}/watch/`; - const socketUrl = `ws://localhost:8002/sock/golf/${gameId}/watch/`; - - const { lastJsonMessage, readyState } = - useWebSocket(socketUrl); - - const [watchState, setWatchState] = useState("connecting"); - - const [problem, setProblem] = useState(null); - - const [scoreA, setScoreA] = useState(null); - const [codeA, setCodeA] = useState(null); - const [scoreB, setScoreB] = useState(null); - const [codeB, setCodeB] = useState(null); - - useEffect(() => { - if (readyState === ReadyState.UNINSTANTIATED) { - setWatchState("failed"); - } else if ( - readyState === ReadyState.CLOSING || - readyState === ReadyState.CLOSED - ) { - if (watchState !== "finished") { - setWatchState("failed"); - } - } else if (readyState === ReadyState.CONNECTING) { - setWatchState("connecting"); - } else if (readyState === ReadyState.OPEN) { - if (lastJsonMessage !== null) { - if (lastJsonMessage.type === "watch") { - const { - problem, - scoreA: scoreA_, - codeA: codeA_, - scoreB: scoreB_, - codeB: codeB_, - } = lastJsonMessage.data; - setProblem(problem); - setScoreA(scoreA_); - setCodeA(codeA_); - setScoreB(scoreB_); - setCodeB(codeB_); - setWatchState("gaming"); - } else { - setWatchState("failed"); - } - } else { - setWatchState("waiting"); - } - } - }, [readyState, lastJsonMessage]); - - return ( -
-

Game #{gameId} watching

-
- {watchState === "connecting" ? ( - - ) : watchState === "waiting" ? ( - - ) : watchState === "gaming" || watchState === "finished" ? ( - - ) : ( - - )} -
-
- ); -} diff --git a/frontend/src/routes/golf/watch/WatchState.ts b/frontend/src/routes/golf/watch/WatchState.ts deleted file mode 100644 index 8d9997e..0000000 --- a/frontend/src/routes/golf/watch/WatchState.ts +++ /dev/null @@ -1,7 +0,0 @@ -export type WatchState = - | "connecting" - | "waiting" - | "starting" - | "gaming" - | "finished" - | "failed"; diff --git a/frontend/src/routes/golf/watch/apps/Connecting.tsx b/frontend/src/routes/golf/watch/apps/Connecting.tsx deleted file mode 100644 index 73d28eb..0000000 --- a/frontend/src/routes/golf/watch/apps/Connecting.tsx +++ /dev/null @@ -1,7 +0,0 @@ -type Props = { - gameId: number; -}; - -export default function Connecting(_props: Props) { - return
接続中です......
; -} diff --git a/frontend/src/routes/golf/watch/apps/Failed.tsx b/frontend/src/routes/golf/watch/apps/Failed.tsx deleted file mode 100644 index 2727663..0000000 --- a/frontend/src/routes/golf/watch/apps/Failed.tsx +++ /dev/null @@ -1,7 +0,0 @@ -type Props = { - gameId: number; -}; - -export default function Failed(_props: Props) { - return
エラー
; -} diff --git a/frontend/src/routes/golf/watch/apps/Gaming.tsx b/frontend/src/routes/golf/watch/apps/Gaming.tsx deleted file mode 100644 index 3f9c195..0000000 --- a/frontend/src/routes/golf/watch/apps/Gaming.tsx +++ /dev/null @@ -1,44 +0,0 @@ -type Props = { - gameId: number; - problem: string | null; - scoreA: number | null; - codeA: string | null; - scoreB: number | null; - codeB: string | null; -}; - -export default function Gaming({ - problem, - scoreA, - codeA, - scoreB, - codeB, -}: Props) { - return ( - <> -
-
- {problem} -
-
-
-
{scoreA}
-
-
-                {codeA}
-              
-
-
-
-
{scoreB}
-
-
-                {codeB}
-              
-
-
-
-
- - ); -} diff --git a/frontend/src/routes/golf/watch/apps/Waiting.tsx b/frontend/src/routes/golf/watch/apps/Waiting.tsx deleted file mode 100644 index a82ee69..0000000 --- a/frontend/src/routes/golf/watch/apps/Waiting.tsx +++ /dev/null @@ -1,7 +0,0 @@ -type Props = { - gameId: number; -}; - -export default function Waiting(_props: Props) { - return
対戦相手が現れるのを待っています......
; -} -- cgit v1.2.3-70-g09d2