diff options
Diffstat (limited to 'frontend/app/components/GolfPlayApps/GolfPlayAppGaming.tsx')
| -rw-r--r-- | frontend/app/components/GolfPlayApps/GolfPlayAppGaming.tsx | 50 |
1 files changed, 43 insertions, 7 deletions
diff --git a/frontend/app/components/GolfPlayApps/GolfPlayAppGaming.tsx b/frontend/app/components/GolfPlayApps/GolfPlayAppGaming.tsx index 08490a6..667ada2 100644 --- a/frontend/app/components/GolfPlayApps/GolfPlayAppGaming.tsx +++ b/frontend/app/components/GolfPlayApps/GolfPlayAppGaming.tsx @@ -3,6 +3,10 @@ import React, { useRef } from "react"; import SubmitButton from "../../components/SubmitButton"; import type { PlayerInfo } from "../../models/PlayerInfo"; import BorderedContainer from "../BorderedContainer"; +import SubmitStatusLabel from "../SubmitStatusLabel"; +import ExecStatusIndicatorIcon from "../ExecStatusIndicatorIcon"; +import { faArrowDown } from "@fortawesome/free-solid-svg-icons"; +import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; type Props = { gameDisplayName: string; @@ -40,10 +44,11 @@ export default function GolfPlayAppGaming({ <div className="text-gray-100">{gameDisplayName}</div> <div className="text-2xl">03:21</div> </div> - <div> - <Link to={"/dashboard"} className="font-bold text-xl"> + <div className="font-bold text-end"> + <Link to={"/dashboard"} className="text-gray-100"> {playerInfo.displayName} </Link> + <div className="text-2xl">{playerInfo.score}</div> </div> </div> <div className="grow grid grid-cols-3 divide-x divide-gray-300"> @@ -62,13 +67,44 @@ export default function GolfPlayAppGaming({ className="resize-none h-full w-full rounded-lg border border-gray-300 p-2 focus:outline-none focus:ring-2 focus:ring-gray-400 transition duration-300" ></textarea> </div> - <div className="p-4"> - <SubmitButton onClick={handleSubmitButtonClick}>提出</SubmitButton> - <div className="mb-2 mt-auto"> - <div className="font-semibold text-green-500"> - Score: {playerInfo.score ?? "-"} + <div className="p-4 flex flex-col gap-4"> + <div className="flex"> + <SubmitButton onClick={handleSubmitButtonClick}>提出</SubmitButton> + <div className="grow font-bold text-xl text-center m-1"> + <SubmitStatusLabel status={playerInfo.submitResult.status} /> </div> </div> + <ul className="flex flex-col gap-2"> + {playerInfo.submitResult.execResults.map((r, idx) => ( + <li key={r.testcase_id ?? -1} className="flex gap-2"> + <div className="flex flex-col gap-2 p-2"> + <div className="w-6"> + <ExecStatusIndicatorIcon status={r.status} /> + </div> + {idx !== playerInfo.submitResult.execResults.length - 1 && ( + <div> + <FontAwesomeIcon + icon={faArrowDown} + fixedWidth + className="text-gray-500" + /> + </div> + )} + </div> + <div className="grow p-2 overflow-x-scroll"> + <BorderedContainer> + <div className="font-semibold">{r.label}</div> + <div> + <code> + {r.stdout} + {r.stderr} + </code> + </div> + </BorderedContainer> + </div> + </li> + ))} + </ul> </div> </div> </div> |
