aboutsummaryrefslogtreecommitdiffhomepage
path: root/frontend/app/components
diff options
context:
space:
mode:
authornsfisis <nsfisis@gmail.com>2024-08-05 05:35:37 +0900
committernsfisis <nsfisis@gmail.com>2024-08-05 05:35:37 +0900
commitdc16e903999af89d87364ad6619e7c8b41301da4 (patch)
tree529f1debc2972ac1486e8c0ca4b25827ccd069a6 /frontend/app/components
parent2a551a05d714657d7cd3b581290054c97398e968 (diff)
downloadphperkaigi-2025-albatross-dc16e903999af89d87364ad6619e7c8b41301da4.tar.gz
phperkaigi-2025-albatross-dc16e903999af89d87364ad6619e7c8b41301da4.tar.zst
phperkaigi-2025-albatross-dc16e903999af89d87364ad6619e7c8b41301da4.zip
feat: show execution result in play page
Diffstat (limited to 'frontend/app/components')
-rw-r--r--frontend/app/components/GolfPlayApp.client.tsx6
-rw-r--r--frontend/app/components/GolfPlayApps/GolfPlayAppGaming.tsx5
2 files changed, 9 insertions, 2 deletions
diff --git a/frontend/app/components/GolfPlayApp.client.tsx b/frontend/app/components/GolfPlayApp.client.tsx
index 80e7182..911fae0 100644
--- a/frontend/app/components/GolfPlayApp.client.tsx
+++ b/frontend/app/components/GolfPlayApp.client.tsx
@@ -73,6 +73,8 @@ export default function GolfPlayApp({
const [currentScore, setCurrentScore] = useState<number | null>(null);
+ const [lastExecStatus, setLastExecStatus] = useState<string | null>(null);
+
const onCodeChange = useDebouncedCallback((code: string) => {
console.log("player:c2s:code");
sendJsonMessage({
@@ -121,13 +123,14 @@ export default function GolfPlayApp({
setGameState("starting");
}
} else if (lastJsonMessage.type === "player:s2c:execresult") {
- const { score } = lastJsonMessage.data;
+ const { status, score } = lastJsonMessage.data;
if (
score !== null &&
(currentScore === null || score < currentScore)
) {
setCurrentScore(score);
}
+ setLastExecStatus(status);
}
} else {
setGameState("waiting");
@@ -150,6 +153,7 @@ export default function GolfPlayApp({
onCodeChange={onCodeChange}
onCodeSubmit={onCodeSubmit}
currentScore={currentScore}
+ lastExecStatus={lastExecStatus}
/>
);
} else if (gameState === "finished") {
diff --git a/frontend/app/components/GolfPlayApps/GolfPlayAppGaming.tsx b/frontend/app/components/GolfPlayApps/GolfPlayAppGaming.tsx
index 9fddb01..1a08b98 100644
--- a/frontend/app/components/GolfPlayApps/GolfPlayAppGaming.tsx
+++ b/frontend/app/components/GolfPlayApps/GolfPlayAppGaming.tsx
@@ -5,6 +5,7 @@ type Props = {
onCodeChange: (code: string) => void;
onCodeSubmit: (code: string) => void;
currentScore: number | null;
+ lastExecStatus: string | null;
};
export default function GolfPlayAppGaming({
@@ -12,6 +13,7 @@ export default function GolfPlayAppGaming({
onCodeChange,
onCodeSubmit,
currentScore,
+ lastExecStatus,
}: Props) {
const textareaRef = useRef<HTMLTextAreaElement>(null);
@@ -36,7 +38,8 @@ export default function GolfPlayAppGaming({
<div className="mb-4 mt-auto">
<div className="mb-2">
<div className="font-semibold text-green-500">
- Score: {currentScore == null ? "-" : `${currentScore}`}
+ Score: {currentScore == null ? "-" : `${currentScore}`} (
+ {lastExecStatus})
</div>
</div>
<button