import Image from 'next/image'; import { Trophy, Crown, Users } from 'lucide-react'; import type { TeamSummaryViewModel } from '@/lib/view-models/TeamSummaryViewModel'; import { getMediaUrl } from '@/lib/utilities/media'; import { Box } from '@/ui/Box'; import { Stack } from '@/ui/Stack'; import { Text } from '@/ui/Text'; import { Heading } from '@/ui/Heading'; import { Icon } from '@/ui/Icon'; import { Surface } from '@/ui/Surface'; import { Button } from '@/ui/Button'; interface TopThreePodiumProps { teams: TeamSummaryViewModel[]; onClick: (id: string) => void; } export function TopThreePodium({ teams, onClick }: TopThreePodiumProps) { const top3 = teams.slice(0, 3) as [TeamSummaryViewModel, TeamSummaryViewModel, TeamSummaryViewModel]; if (teams.length < 3) return null; // Display order: 2nd, 1st, 3rd const podiumOrder: [TeamSummaryViewModel, TeamSummaryViewModel, TeamSummaryViewModel] = [ top3[1], top3[0], top3[2], ]; const podiumHeights = ['h-28', 'h-36', 'h-20']; const podiumPositions = [2, 1, 3]; const getPositionColor = (position: number) => { switch (position) { case 1: return 'text-yellow-400'; case 2: return 'text-gray-300'; case 3: return 'text-amber-600'; default: return 'text-gray-500'; } }; const getVariant = (position: number): any => { switch (position) { case 1: return 'gradient-gold'; case 2: return 'default'; case 3: return 'gradient-purple'; default: return 'muted'; } }; return ( Top 3 Teams {podiumOrder.map((team, index) => { const position = podiumPositions[index] ?? 0; return ( {/* Team card */} {/* Podium stand */} {position} ); })} ); }