aboutsummaryrefslogtreecommitdiffhomepage
path: root/frontend/app/routes/admin.games_.$gameId.tsx
diff options
context:
space:
mode:
authornsfisis <nsfisis@gmail.com>2024-08-01 22:22:12 +0900
committernsfisis <nsfisis@gmail.com>2024-08-01 22:22:12 +0900
commit8f2cceacc8fde328033de7f05bb12e7b1246dd86 (patch)
treeacb93a52454315c286b9e0f3c624ae1bbcfa32f5 /frontend/app/routes/admin.games_.$gameId.tsx
parent00e50b2dcfed209669c46da54dc07905d65887b8 (diff)
downloadiosdc-japan-2024-albatross-8f2cceacc8fde328033de7f05bb12e7b1246dd86.tar.gz
iosdc-japan-2024-albatross-8f2cceacc8fde328033de7f05bb12e7b1246dd86.tar.zst
iosdc-japan-2024-albatross-8f2cceacc8fde328033de7f05bb12e7b1246dd86.zip
chore(frontend): [biome] format
Diffstat (limited to 'frontend/app/routes/admin.games_.$gameId.tsx')
-rw-r--r--frontend/app/routes/admin.games_.$gameId.tsx172
1 files changed, 86 insertions, 86 deletions
diff --git a/frontend/app/routes/admin.games_.$gameId.tsx b/frontend/app/routes/admin.games_.$gameId.tsx
index a7bd651..34860ab 100644
--- a/frontend/app/routes/admin.games_.$gameId.tsx
+++ b/frontend/app/routes/admin.games_.$gameId.tsx
@@ -1,107 +1,107 @@
import type {
- ActionFunctionArgs,
- LoaderFunctionArgs,
- MetaFunction,
+ ActionFunctionArgs,
+ LoaderFunctionArgs,
+ MetaFunction,
} from "@remix-run/node";
import { Form, useLoaderData } from "@remix-run/react";
import { adminApiGetGame, adminApiPutGame } from "../.server/api/client";
import { isAuthenticated } from "../.server/auth";
export const meta: MetaFunction<typeof loader> = ({ data }) => {
- return [
- {
- title: data
- ? `[Admin] Game Edit ${data.game.display_name} | iOSDC Japan 2024 Albatross.swift`
- : "[Admin] Game Edit | iOSDC Japan 2024 Albatross.swift",
- },
- ];
+ return [
+ {
+ title: data
+ ? `[Admin] Game Edit ${data.game.display_name} | iOSDC Japan 2024 Albatross.swift`
+ : "[Admin] Game Edit | iOSDC Japan 2024 Albatross.swift",
+ },
+ ];
};
export async function loader({ request, params }: LoaderFunctionArgs) {
- const { user, token } = await isAuthenticated(request, {
- failureRedirect: "/login",
- });
- if (!user.is_admin) {
- throw new Error("Unauthorized");
- }
- const { gameId } = params;
- const { game } = await adminApiGetGame(token, Number(gameId));
- return { game };
+ const { user, token } = await isAuthenticated(request, {
+ failureRedirect: "/login",
+ });
+ if (!user.is_admin) {
+ throw new Error("Unauthorized");
+ }
+ const { gameId } = params;
+ const { game } = await adminApiGetGame(token, Number(gameId));
+ return { game };
}
export async function action({ request, params }: ActionFunctionArgs) {
- const { user, token } = await isAuthenticated(request, {
- failureRedirect: "/login",
- });
- if (!user.is_admin) {
- throw new Error("Unauthorized");
- }
- const { gameId } = params;
+ const { user, token } = await isAuthenticated(request, {
+ failureRedirect: "/login",
+ });
+ if (!user.is_admin) {
+ throw new Error("Unauthorized");
+ }
+ const { gameId } = params;
- const formData = await request.formData();
- const action = formData.get("action");
+ const formData = await request.formData();
+ const action = formData.get("action");
- const nextState =
- action === "open"
- ? "waiting_entries"
- : action === "start"
- ? "prepare"
- : null;
- if (!nextState) {
- throw new Error("Invalid action");
- }
+ const nextState =
+ action === "open"
+ ? "waiting_entries"
+ : action === "start"
+ ? "prepare"
+ : null;
+ if (!nextState) {
+ throw new Error("Invalid action");
+ }
- await adminApiPutGame(token, Number(gameId), {
- state: nextState,
- });
- return null;
+ await adminApiPutGame(token, Number(gameId), {
+ state: nextState,
+ });
+ return null;
}
export default function AdminGameEdit() {
- const { game } = useLoaderData<typeof loader>()!;
+ const { game } = useLoaderData<typeof loader>()!;
- return (
- <div>
- <div>
- <h1>[Admin] Game Edit {game.display_name}</h1>
- <ul>
- <li>ID: {game.game_id}</li>
- <li>State: {game.state}</li>
- <li>Display Name: {game.display_name}</li>
- <li>Duration Seconds: {game.duration_seconds}</li>
- <li>
- Started At:{" "}
- {game.started_at
- ? new Date(game.started_at * 1000).toString()
- : "-"}
- </li>
- <li>Problem ID: {game.problem ? game.problem.problem_id : "-"}</li>
- </ul>
- <div>
- <Form method="post">
- <div>
- <button
- type="submit"
- name="action"
- value="open"
- disabled={game.state !== "closed"}
- >
- Open
- </button>
- </div>
- <div>
- <button
- type="submit"
- name="action"
- value="start"
- disabled={game.state !== "waiting_start"}
- >
- Start
- </button>
- </div>
- </Form>
- </div>
- </div>
- </div>
- );
+ return (
+ <div>
+ <div>
+ <h1>[Admin] Game Edit {game.display_name}</h1>
+ <ul>
+ <li>ID: {game.game_id}</li>
+ <li>State: {game.state}</li>
+ <li>Display Name: {game.display_name}</li>
+ <li>Duration Seconds: {game.duration_seconds}</li>
+ <li>
+ Started At:{" "}
+ {game.started_at
+ ? new Date(game.started_at * 1000).toString()
+ : "-"}
+ </li>
+ <li>Problem ID: {game.problem ? game.problem.problem_id : "-"}</li>
+ </ul>
+ <div>
+ <Form method="post">
+ <div>
+ <button
+ type="submit"
+ name="action"
+ value="open"
+ disabled={game.state !== "closed"}
+ >
+ Open
+ </button>
+ </div>
+ <div>
+ <button
+ type="submit"
+ name="action"
+ value="start"
+ disabled={game.state !== "waiting_start"}
+ >
+ Start
+ </button>
+ </div>
+ </Form>
+ </div>
+ </div>
+ </div>
+ );
}