Files
gridpilot.gg/apps/website/templates/LeaderboardsTemplate.tsx
2026-01-15 18:52:03 +01:00

60 lines
1.8 KiB
TypeScript

'use client';
import React from 'react';
import { Box } from '@/ui/Box';
import { Container } from '@/ui/Container';
import { Grid } from '@/ui/Grid';
import { GridItem } from '@/ui/GridItem';
import { DriverLeaderboardPreview } from '@/components/leaderboards/DriverLeaderboardPreview';
import { TeamLeaderboardPreview } from '@/ui/TeamLeaderboardPreviewWrapper';
import { LeaderboardsHero } from '@/components/leaderboards/LeaderboardsHero';
import type { LeaderboardsViewData } from '@/lib/view-data/LeaderboardsViewData';
interface LeaderboardsTemplateProps {
viewData: LeaderboardsViewData;
onDriverClick: (id: string) => void;
onTeamClick: (id: string) => void;
onNavigateToDrivers: () => void;
onNavigateToTeams: () => void;
}
export function LeaderboardsTemplate({
viewData,
onDriverClick,
onTeamClick,
onNavigateToDrivers,
onNavigateToTeams
}: LeaderboardsTemplateProps) {
return (
<Container size="lg" py={8}>
<Box mb={10}>
<LeaderboardsHero
onNavigateToDrivers={onNavigateToDrivers}
onNavigateToTeams={onNavigateToTeams}
/>
</Box>
<Grid cols={12} gap={6}>
<GridItem colSpan={12} lgSpan={6}>
<DriverLeaderboardPreview
drivers={viewData.drivers}
onDriverClick={onDriverClick}
onNavigateToDrivers={onNavigateToDrivers}
/>
</GridItem>
<GridItem colSpan={12} lgSpan={6}>
<TeamLeaderboardPreview
topTeams={viewData.teams.map(team => ({
...team,
isRecruiting: false,
performanceLevel: 'N/A'
}))}
onTeamClick={onTeamClick}
onViewFullLeaderboard={onNavigateToTeams}
/>
</GridItem>
</Grid>
</Container>
);
}