diff --git a/apps/web/src/components/multiplayer/MultiplayerScoreScreen.tsx b/apps/web/src/components/multiplayer/MultiplayerScoreScreen.tsx new file mode 100644 index 0000000..5e95588 --- /dev/null +++ b/apps/web/src/components/multiplayer/MultiplayerScoreScreen.tsx @@ -0,0 +1,114 @@ +import { useNavigate } from "@tanstack/react-router"; +import type { LobbyPlayer } from "@lila/shared"; + +type MultiplayerScoreScreenProps = { + players: LobbyPlayer[]; + winnerIds: string[]; + currentUserId: string; + lobbyCode: string; +}; + +export const MultiplayerScoreScreen = ({ + players, + winnerIds, + currentUserId, + lobbyCode, +}: MultiplayerScoreScreenProps) => { + const navigate = useNavigate(); + + const sortedPlayers = [...players].sort((a, b) => b.score - a.score); + + const isWinner = winnerIds.includes(currentUserId); + const isTie = winnerIds.length > 1; + + const winnerNames = winnerIds + .map((id) => players.find((p) => p.userId === id)?.user.name ?? id) + .join(" and "); + + return ( +
+ {isTie ? `${winnerNames} tied` : `${winnerNames} wins!`} +
+