import { Avatar, AvatarImage } from "@/components/ui/avatar"; import CountryFlag from "@/components/country-flag"; import Link from "next/link"; import ScoreSaberPlayerToken from "@ssr/common/types/token/scoresaber/score-saber-player-token"; import ScoreSaberPlayer from "@ssr/common/player/impl/scoresaber-player"; import { clsx } from "clsx"; import { getScoreSaberRole } from "@ssr/common/utils/scoresaber.util"; import { ScoreSaberLeaderboardPlayerInfoToken } from "@ssr/common/types/token/scoresaber/score-saber-leaderboard-player-info-token"; type TablePlayerProps = { /** * The player to display. */ player: ScoreSaberPlayerToken | ScoreSaberLeaderboardPlayerInfoToken; /** * The player to highlight. */ highlightedPlayer?: ScoreSaberPlayerToken | ScoreSaberPlayer; /** * The additional class names */ className?: string; /** * Hide the country flag */ hideCountryFlag?: boolean; /** * Whether to make the player name a link */ useLink?: boolean; /** * Whether to apply hover brightness */ hoverBrightness?: boolean; }; export function PlayerInfo({ player, highlightedPlayer, className, hideCountryFlag, useLink, hoverBrightness = true, }: TablePlayerProps) { const name = (

{player.name}

); return (
{!hideCountryFlag && } {useLink ? {name} : name}
); }