From 5988360d8cf0fc0028c6db1c82afc1e313ba0513 Mon Sep 17 00:00:00 2001 From: nsfisis Date: Mon, 5 Aug 2024 02:27:53 +0900 Subject: feat(backend): return `game_type` in API response --- frontend/app/.server/api/schema.d.ts | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'frontend') diff --git a/frontend/app/.server/api/schema.d.ts b/frontend/app/.server/api/schema.d.ts index 88067a8..62badcf 100644 --- a/frontend/app/.server/api/schema.d.ts +++ b/frontend/app/.server/api/schema.d.ts @@ -95,6 +95,11 @@ export interface components { Game: { /** @example 1 */ game_id: number; + /** + * @example 1v1 + * @enum {string} + */ + game_type: "1v1" | "multiplayer"; /** * @example closed * @enum {string} -- cgit v1.2.3-70-g09d2 From 63d65d60fc121d6dfc2cdb6a2e23462a989880e0 Mon Sep 17 00:00:00 2001 From: nsfisis Date: Mon, 5 Aug 2024 03:06:21 +0900 Subject: feat(frontend): disallow to access watch page in multiplayer mode --- frontend/app/routes/golf.$gameId.watch.tsx | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'frontend') diff --git a/frontend/app/routes/golf.$gameId.watch.tsx b/frontend/app/routes/golf.$gameId.watch.tsx index 83b7a1a..5edf92f 100644 --- a/frontend/app/routes/golf.$gameId.watch.tsx +++ b/frontend/app/routes/golf.$gameId.watch.tsx @@ -25,6 +25,11 @@ export async function loader({ params, request }: LoaderFunctionArgs) { }; const [game, sockToken] = await Promise.all([fetchGame(), fetchSockToken()]); + + if (game.game_type !== "1v1") { + return new Response("Not Found", { status: 404 }); + } + return { game, sockToken, -- cgit v1.2.3-70-g09d2 From b17b32b5426baf2ce6bb18e5ecccb115061e70a2 Mon Sep 17 00:00:00 2001 From: nsfisis Date: Mon, 5 Aug 2024 03:05:58 +0900 Subject: feat(frontend): show game type on dashboard --- frontend/app/routes/dashboard.tsx | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'frontend') diff --git a/frontend/app/routes/dashboard.tsx b/frontend/app/routes/dashboard.tsx index e23d7aa..e6a43de 100644 --- a/frontend/app/routes/dashboard.tsx +++ b/frontend/app/routes/dashboard.tsx @@ -42,7 +42,8 @@ export default function Dashboard() {
    {games.map((game) => (
  • - {game.display_name}{" "} + {game.display_name} + {game.game_type === "multiplayer" ? " (Multiplayer)" : " (1v1)"} {game.state === "closed" || game.state === "finished" ? ( Entry -- cgit v1.2.3-70-g09d2