clarify game end reason in user profile history

This commit is contained in:
Nathaniel Tampus
2023-06-13 12:41:20 +08:00
parent ad7bf5a989
commit e0f864347b

View File

@@ -64,93 +64,102 @@ export default async function Profile({ params }: { params: { name: string } })
<div> <div>
<h2 className="mb-1 text-lg font-bold">Recent games</h2> <h2 className="mb-1 text-lg font-bold">Recent games</h2>
<ul className="bg-base-300 flex h-[60vh] flex-col gap-1 overflow-y-scroll rounded-lg"> <ul className="bg-base-300 flex h-[60vh] flex-col gap-1 overflow-y-scroll rounded-lg">
{data.recentGames.map((game) => ( {data.recentGames.map((game) => {
<li let endReason = game.endReason as string;
key={game.id} if (endReason === "repetition") {
className="border-base-100 flex flex-wrap items-center justify-between gap-8 border-b-2 p-3" endReason = "threefold repetition";
> } else if (endReason === "insufficient") {
<div className="flex w-72 justify-between"> endReason = "insufficient material";
<div className="flex flex-col"> }
<span className="flex items-center gap-1 text-sm">
White
{game.winner === "white" && (
<span className="badge badge-xs badge-success">winner</span>
)}
</span>
<a
className={
"font-bold" +
(typeof game.white?.id === "number"
? " text-primary link-hover"
: " cursor-default")
}
href={
typeof game.white?.id === "number" && game.white?.id !== data.id
? `/user/${game.white?.name}`
: undefined
}
target="_blank"
rel="noopener noreferrer"
>
{game.white?.name}
</a>
</div>
<div className="flex flex-col items-end">
<span className="flex items-center gap-1 text-sm">
{game.winner === "black" && (
<span className="badge badge-xs badge-success">winner</span>
)}
Black
</span>
<a
className={
"font-bold" +
(typeof game.black?.id === "number"
? " text-primary link-hover"
: " cursor-default")
}
href={
typeof game.black?.id === "number" && game.black?.id !== data.id
? `/user/${game.black?.name}`
: undefined
}
target="_blank"
rel="noopener noreferrer"
>
{game.black?.name}
</a>
</div>
</div>
<div className="flex-grow text-end text-xs">{game.endReason}</div> return (
<li
<div className="flex flex-grow flex-col text-end"> key={game.id}
<span className="text-xs"> className="border-base-100 flex flex-wrap items-center justify-between gap-8 border-b-2 p-3"
Started
<span className="font-bold">
{" "}
{new Date(game.startedAt as number).toLocaleString()}
</span>
</span>
<span className="text-xs">
Ended
<span className="font-bold">
{" "}
{new Date(game.endedAt as number).toLocaleString()}
</span>
</span>
</div>
<a
className="btn btn-ghost flex-grow"
href={`/archive/${game.id}`}
target="_blank"
rel="noopener noreferrer"
> >
Review game <div className="flex w-72 justify-between">
</a> <div className="flex flex-col">
</li> <span className="flex items-center gap-1 text-sm">
))} White
{game.winner === "white" && (
<span className="badge badge-xs badge-success">winner</span>
)}
</span>
<a
className={
"font-bold" +
(typeof game.white?.id === "number"
? " text-primary link-hover"
: " cursor-default")
}
href={
typeof game.white?.id === "number" && game.white?.id !== data.id
? `/user/${game.white?.name}`
: undefined
}
target="_blank"
rel="noopener noreferrer"
>
{game.white?.name}
</a>
</div>
<div className="flex flex-col items-end">
<span className="flex items-center gap-1 text-sm">
{game.winner === "black" && (
<span className="badge badge-xs badge-success">winner</span>
)}
Black
</span>
<a
className={
"font-bold" +
(typeof game.black?.id === "number"
? " text-primary link-hover"
: " cursor-default")
}
href={
typeof game.black?.id === "number" && game.black?.id !== data.id
? `/user/${game.black?.name}`
: undefined
}
target="_blank"
rel="noopener noreferrer"
>
{game.black?.name}
</a>
</div>
</div>
<div className="flex-grow text-end text-xs">{endReason}</div>
<div className="flex flex-grow flex-col text-end">
<span className="text-xs">
Started
<span className="font-bold">
{" "}
{new Date(game.startedAt as number).toLocaleString()}
</span>
</span>
<span className="text-xs">
Ended
<span className="font-bold">
{" "}
{new Date(game.endedAt as number).toLocaleString()}
</span>
</span>
</div>
<a
className="btn btn-ghost flex-grow"
href={`/archive/${game.id}`}
target="_blank"
rel="noopener noreferrer"
>
Review game
</a>
</li>
);
})}
</ul> </ul>
</div> </div>
</div> </div>