aboutsummaryrefslogtreecommitdiffhomepage
path: root/frontend/app/states/play.ts
diff options
context:
space:
mode:
authornsfisis <nsfisis@gmail.com>2026-03-06 02:18:40 +0900
committernsfisis <nsfisis@gmail.com>2026-03-06 02:18:40 +0900
commit46f9ba5d8c295454381655e6ec02ad3cf8bd79db (patch)
treec54719cb129ee05f96c4898219588062f71daa36 /frontend/app/states/play.ts
parent27f509ccf4fbfeaa1bc2580ae2251461dc44ebfa (diff)
downloadphperkaigi-2026-albatross-46f9ba5d8c295454381655e6ec02ad3cf8bd79db.tar.gz
phperkaigi-2026-albatross-46f9ba5d8c295454381655e6ec02ad3cf8bd79db.tar.zst
phperkaigi-2026-albatross-46f9ba5d8c295454381655e6ec02ad3cf8bd79db.zip
style: switch from tab to space indentation in frontend and worker/php
Update biome.json indentStyle from "tab" to "space" and reformat all files in both workspaces. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Diffstat (limited to 'frontend/app/states/play.ts')
-rw-r--r--frontend/app/states/play.ts146
1 files changed, 73 insertions, 73 deletions
diff --git a/frontend/app/states/play.ts b/frontend/app/states/play.ts
index 22d338c..a8a4727 100644
--- a/frontend/app/states/play.ts
+++ b/frontend/app/states/play.ts
@@ -4,121 +4,121 @@ import type { SupportedLanguage } from "../types/SupportedLanguage";
const gameStartedAtAtom = atom<number | null>(null);
export const setGameStartedAtAtom = atom(null, (_, set, value: number | null) =>
- set(gameStartedAtAtom, value),
+ set(gameStartedAtAtom, value),
);
export type GameStateKind =
- | "loading"
- | "waiting"
- | "starting"
- | "gaming"
- | "finished";
+ | "loading"
+ | "waiting"
+ | "starting"
+ | "gaming"
+ | "finished";
type ExecutionStatus = components["schemas"]["ExecutionStatus"];
type LatestGameState = components["schemas"]["LatestGameState"];
export const gameStateKindAtom = atom<GameStateKind>((get) => {
- const now = get(currentTimestampAtom);
- if (!now) {
- return "loading";
- }
- const startedAt = get(gameStartedAtAtom);
- if (!startedAt) {
- return "waiting";
- }
- const durationSeconds = get(durationSecondsAtom);
- const finishedAt = startedAt + durationSeconds;
- if (now < startedAt) {
- return "starting";
- } else if (now < finishedAt) {
- return "gaming";
- } else {
- return "finished";
- }
+ const now = get(currentTimestampAtom);
+ if (!now) {
+ return "loading";
+ }
+ const startedAt = get(gameStartedAtAtom);
+ if (!startedAt) {
+ return "waiting";
+ }
+ const durationSeconds = get(durationSecondsAtom);
+ const finishedAt = startedAt + durationSeconds;
+ if (now < startedAt) {
+ return "starting";
+ } else if (now < finishedAt) {
+ return "gaming";
+ } else {
+ return "finished";
+ }
});
const currentTimestampAtom = atom<number | null>(null);
export const setCurrentTimestampAtom = atom(null, (_, set) =>
- set(currentTimestampAtom, Math.floor(Date.now() / 1000)),
+ set(currentTimestampAtom, Math.floor(Date.now() / 1000)),
);
const durationSecondsAtom = atom<number>(0);
export const setDurationSecondsAtom = atom(null, (_, set, value: number) =>
- set(durationSecondsAtom, value),
+ set(durationSecondsAtom, value),
);
export const startingLeftTimeSecondsAtom = atom<number | null>((get) => {
- const startedAt = get(gameStartedAtAtom);
- if (startedAt === null) {
- return null;
- }
- const currentTimestamp = get(currentTimestampAtom);
- if (currentTimestamp === null) {
- return null;
- }
- return Math.max(0, startedAt - currentTimestamp);
+ const startedAt = get(gameStartedAtAtom);
+ if (startedAt === null) {
+ return null;
+ }
+ const currentTimestamp = get(currentTimestampAtom);
+ if (currentTimestamp === null) {
+ return null;
+ }
+ return Math.max(0, startedAt - currentTimestamp);
});
export const gamingLeftTimeSecondsAtom = atom<number | null>((get) => {
- const startedAt = get(gameStartedAtAtom);
- if (startedAt === null) {
- return null;
- }
- const durationSeconds = get(durationSecondsAtom);
- const finishedAt = startedAt + durationSeconds;
- const currentTimestamp = get(currentTimestampAtom);
- if (currentTimestamp === null) {
- return null;
- }
- return Math.min(durationSeconds, Math.max(0, finishedAt - currentTimestamp));
+ const startedAt = get(gameStartedAtAtom);
+ if (startedAt === null) {
+ return null;
+ }
+ const durationSeconds = get(durationSecondsAtom);
+ const finishedAt = startedAt + durationSeconds;
+ const currentTimestamp = get(currentTimestampAtom);
+ if (currentTimestamp === null) {
+ return null;
+ }
+ return Math.min(durationSeconds, Math.max(0, finishedAt - currentTimestamp));
});
const rawStatusAtom = atom<ExecutionStatus>("none");
const rawScoreAtom = atom<number | null>(null);
export const statusAtom = atom<ExecutionStatus>((get) => {
- const isSubmittingCode = get(isSubmittingCodeAtom);
- if (isSubmittingCode) {
- return "running";
- } else {
- return get(rawStatusAtom);
- }
+ const isSubmittingCode = get(isSubmittingCodeAtom);
+ if (isSubmittingCode) {
+ return "running";
+ } else {
+ return get(rawStatusAtom);
+ }
});
export const scoreAtom = atom<number | null>((get) => {
- return get(rawScoreAtom);
+ return get(rawScoreAtom);
});
const isSubmittingCodeAtom = atom(false);
export const handleSubmitCodePreAtom = atom(null, (_, set) => {
- set(isSubmittingCodeAtom, true);
+ set(isSubmittingCodeAtom, true);
});
export const handleSubmitCodePostAtom = atom(null, (_, set) => {
- set(isSubmittingCodeAtom, false);
+ set(isSubmittingCodeAtom, false);
});
export const setLatestGameStateAtom = atom(
- null,
- (_, set, value: LatestGameState) => {
- set(rawStatusAtom, value.status);
- set(rawScoreAtom, value.score);
- },
+ null,
+ (_, set, value: LatestGameState) => {
+ set(rawStatusAtom, value.status);
+ set(rawScoreAtom, value.score);
+ },
);
function cleanCode(code: string, language: SupportedLanguage) {
- if (language === "php") {
- return code
- .replace(/\s+/g, "")
- .replace(/^<\?php/, "")
- .replace(/^<\?/, "")
- .replace(/\?>$/, "");
- } else {
- return code.replace(/\s+/g, "");
- }
+ if (language === "php") {
+ return code
+ .replace(/\s+/g, "")
+ .replace(/^<\?php/, "")
+ .replace(/^<\?/, "")
+ .replace(/\?>$/, "");
+ } else {
+ return code.replace(/\s+/g, "");
+ }
}
export function calcCodeSize(
- code: string,
- language: SupportedLanguage,
+ code: string,
+ language: SupportedLanguage,
): number {
- const trimmed = cleanCode(code, language);
- const utf8Encoded = new TextEncoder().encode(trimmed);
- return utf8Encoded.length;
+ const trimmed = cleanCode(code, language);
+ const utf8Encoded = new TextEncoder().encode(trimmed);
+ return utf8Encoded.length;
}