diff options
| author | nsfisis <nsfisis@gmail.com> | 2025-03-21 15:11:30 +0900 |
|---|---|---|
| committer | nsfisis <nsfisis@gmail.com> | 2025-03-21 15:40:40 +0900 |
| commit | 432baae1b49343ea780793330149a285a53bbdc7 (patch) | |
| tree | 3dc84e517910fb7e15f172bab5a803a6379a7c32 /frontend/app/routes/golf.$gameId.watch.tsx | |
| parent | 589d2355910e8fc63eabecad631b16b3d3d6a492 (diff) | |
| download | phperkaigi-2025-albatross-432baae1b49343ea780793330149a285a53bbdc7.tar.gz phperkaigi-2025-albatross-432baae1b49343ea780793330149a285a53bbdc7.tar.zst phperkaigi-2025-albatross-432baae1b49343ea780793330149a285a53bbdc7.zip | |
wip
Diffstat (limited to 'frontend/app/routes/golf.$gameId.watch.tsx')
| -rw-r--r-- | frontend/app/routes/golf.$gameId.watch.tsx | 30 |
1 files changed, 17 insertions, 13 deletions
diff --git a/frontend/app/routes/golf.$gameId.watch.tsx b/frontend/app/routes/golf.$gameId.watch.tsx index 07e8c9e..556eb03 100644 --- a/frontend/app/routes/golf.$gameId.watch.tsx +++ b/frontend/app/routes/golf.$gameId.watch.tsx @@ -1,7 +1,7 @@ import { Provider as JotaiProvider, createStore } from "jotai"; import { useMemo } from "react"; import type { LoaderFunctionArgs, MetaFunction } from "react-router"; -import { useLoaderData } from "react-router"; +import { redirect, useLoaderData } from "react-router"; import { ensureUserLoggedIn } from "../.server/auth"; import { ApiClientContext, createApiClient } from "../api/client"; import GolfWatchApp from "../components/GolfWatchApp"; @@ -20,18 +20,22 @@ export async function loader({ params, request }: LoaderFunctionArgs) { const gameId = Number(params.gameId); - const [{ game }, { ranking }, { states: gameStates }] = await Promise.all([ - await apiClient.getGame(gameId), - await apiClient.getGameWatchRanking(gameId), - await apiClient.getGameWatchLatestStates(gameId), - ]); - - return { - apiToken: token, - game, - ranking, - gameStates, - }; + try { + const [{ game }, { ranking }, { states: gameStates }] = await Promise.all([ + await apiClient.getGame(gameId), + await apiClient.getGameWatchRanking(gameId), + await apiClient.getGameWatchLatestStates(gameId), + ]); + + return { + apiToken: token, + game, + ranking, + gameStates, + }; + } catch { + throw redirect("/dashboard"); + } } export default function GolfWatch() { |
