'use client'; import React from 'react'; import { Award, ArrowLeft } from 'lucide-react'; import { Button } from '@/ui/Button'; import { Heading } from '@/ui/Heading'; import { Box } from '@/ui/Box'; import { Stack } from '@/ui/Stack'; import { Text } from '@/ui/Text'; import { Container } from '@/ui/Container'; import { Icon } from '@/ui/Icon'; import { ModalIcon } from '@/ui/ModalIcon'; import { TeamPodium } from '@/ui/TeamPodium'; import { TeamFilter } from '@/ui/TeamFilter'; import { TeamRankingsTable } from '@/ui/TeamRankingsTable'; import type { TeamLeaderboardViewData, SkillLevel, SortBy } from '@/lib/view-data/TeamLeaderboardViewData'; interface TeamLeaderboardTemplateProps { viewData: TeamLeaderboardViewData; onSearchChange: (query: string) => void; filterLevelChange: (level: SkillLevel | 'all') => void; onSortChange: (sort: SortBy) => void; onTeamClick: (id: string) => void; onBackToTeams: () => void; } export function TeamLeaderboardTemplate({ viewData, onSearchChange, filterLevelChange, onSortChange, onTeamClick, onBackToTeams, }: TeamLeaderboardTemplateProps) { const { searchQuery, filterLevel, sortBy, filteredAndSortedTeams } = viewData; return ( {/* Header */} Team Leaderboard Rankings of all teams by performance metrics {/* Filters and Search */} {/* Podium for Top 3 */} {sortBy === 'rating' && filterLevel === 'all' && !searchQuery && filteredAndSortedTeams.length >= 3 && ( )} {/* Leaderboard Table */} ); }