wip
This commit is contained in:
@@ -52,29 +52,10 @@ interface DriverListItem {
|
||||
// ============================================================================
|
||||
// DEMO DATA
|
||||
// ============================================================================
|
||||
|
||||
const DEMO_DRIVERS: DriverListItem[] = [
|
||||
{ id: 'demo-1', name: 'Max Verstappen', rating: 4250, skillLevel: 'pro', nationality: 'NL', racesCompleted: 156, wins: 47, podiums: 89, isActive: true, rank: 1 },
|
||||
{ id: 'demo-2', name: 'Lewis Hamilton', rating: 4180, skillLevel: 'pro', nationality: 'GB', racesCompleted: 198, wins: 52, podiums: 112, isActive: true, rank: 2 },
|
||||
{ id: 'demo-3', name: 'Charles Leclerc', rating: 3950, skillLevel: 'pro', nationality: 'MC', racesCompleted: 134, wins: 28, podiums: 67, isActive: true, rank: 3 },
|
||||
{ id: 'demo-4', name: 'Lando Norris', rating: 3820, skillLevel: 'advanced', nationality: 'GB', racesCompleted: 112, wins: 18, podiums: 45, isActive: true, rank: 4 },
|
||||
{ id: 'demo-5', name: 'Carlos Sainz', rating: 3750, skillLevel: 'advanced', nationality: 'ES', racesCompleted: 145, wins: 15, podiums: 52, isActive: true, rank: 5 },
|
||||
{ id: 'demo-6', name: 'Oscar Piastri', rating: 3680, skillLevel: 'advanced', nationality: 'AU', racesCompleted: 78, wins: 8, podiums: 24, isActive: true, rank: 6 },
|
||||
{ id: 'demo-7', name: 'George Russell', rating: 3620, skillLevel: 'advanced', nationality: 'GB', racesCompleted: 98, wins: 6, podiums: 31, isActive: true, rank: 7 },
|
||||
{ id: 'demo-8', name: 'Fernando Alonso', rating: 3580, skillLevel: 'advanced', nationality: 'ES', racesCompleted: 256, wins: 32, podiums: 98, isActive: true, rank: 8 },
|
||||
{ id: 'demo-9', name: 'Nico Hülkenberg', rating: 3420, skillLevel: 'advanced', nationality: 'DE', racesCompleted: 167, wins: 2, podiums: 18, isActive: true, rank: 9 },
|
||||
{ id: 'demo-10', name: 'Yuki Tsunoda', rating: 3250, skillLevel: 'intermediate', nationality: 'JP', racesCompleted: 89, wins: 1, podiums: 8, isActive: true, rank: 10 },
|
||||
{ id: 'demo-11', name: 'Alex Albon', rating: 3180, skillLevel: 'intermediate', nationality: 'TH', racesCompleted: 102, wins: 0, podiums: 4, isActive: true, rank: 11 },
|
||||
{ id: 'demo-12', name: 'Kevin Magnussen', rating: 3050, skillLevel: 'intermediate', nationality: 'DK', racesCompleted: 145, wins: 0, podiums: 2, isActive: true, rank: 12 },
|
||||
{ id: 'demo-13', name: 'Pierre Gasly', rating: 2980, skillLevel: 'intermediate', nationality: 'FR', racesCompleted: 124, wins: 1, podiums: 5, isActive: true, rank: 13 },
|
||||
{ id: 'demo-14', name: 'Esteban Ocon', rating: 2920, skillLevel: 'intermediate', nationality: 'FR', racesCompleted: 118, wins: 1, podiums: 4, isActive: true, rank: 14 },
|
||||
{ id: 'demo-15', name: 'Lance Stroll', rating: 2850, skillLevel: 'intermediate', nationality: 'CA', racesCompleted: 134, wins: 0, podiums: 3, isActive: true, rank: 15 },
|
||||
{ id: 'demo-16', name: 'Zhou Guanyu', rating: 2650, skillLevel: 'intermediate', nationality: 'CN', racesCompleted: 67, wins: 0, podiums: 0, isActive: true, rank: 16 },
|
||||
{ id: 'demo-17', name: 'Daniel Ricciardo', rating: 2500, skillLevel: 'intermediate', nationality: 'AU', racesCompleted: 189, wins: 8, podiums: 32, isActive: false, rank: 17 },
|
||||
{ id: 'demo-18', name: 'Valtteri Bottas', rating: 2450, skillLevel: 'intermediate', nationality: 'FI', racesCompleted: 212, wins: 10, podiums: 67, isActive: false, rank: 18 },
|
||||
{ id: 'demo-19', name: 'Logan Sargeant', rating: 1850, skillLevel: 'beginner', nationality: 'US', racesCompleted: 34, wins: 0, podiums: 0, isActive: false, rank: 19 },
|
||||
{ id: 'demo-20', name: 'Nyck de Vries', rating: 1750, skillLevel: 'beginner', nationality: 'NL', racesCompleted: 12, wins: 0, podiums: 0, isActive: false, rank: 20 },
|
||||
];
|
||||
//
|
||||
// In alpha, all driver listings come from the in-memory repositories wired
|
||||
// through the DI container. We intentionally avoid hardcoded fallback driver
|
||||
// lists here so that the demo data stays consistent across pages.
|
||||
|
||||
// ============================================================================
|
||||
// SKILL LEVEL CONFIG
|
||||
@@ -464,7 +445,7 @@ export default function DriversPage() {
|
||||
return rankA - rankB || b.rating - a.rating;
|
||||
});
|
||||
|
||||
setDrivers(items.length > 0 ? items : DEMO_DRIVERS);
|
||||
setDrivers(items);
|
||||
setLoading(false);
|
||||
};
|
||||
|
||||
@@ -472,7 +453,6 @@ export default function DriversPage() {
|
||||
}, []);
|
||||
|
||||
const handleDriverClick = (driverId: string) => {
|
||||
if (driverId.startsWith('demo-')) return;
|
||||
router.push(`/drivers/${driverId}`);
|
||||
};
|
||||
|
||||
|
||||
@@ -41,28 +41,6 @@ interface DriverListItem {
|
||||
rank: number;
|
||||
}
|
||||
|
||||
// ============================================================================
|
||||
// DEMO DATA
|
||||
// ============================================================================
|
||||
|
||||
const DEMO_DRIVERS: DriverListItem[] = [
|
||||
{ id: 'demo-1', name: 'Max Verstappen', rating: 4250, skillLevel: 'pro', nationality: 'NL', racesCompleted: 156, wins: 47, podiums: 89, rank: 1 },
|
||||
{ id: 'demo-2', name: 'Lewis Hamilton', rating: 4180, skillLevel: 'pro', nationality: 'GB', racesCompleted: 198, wins: 52, podiums: 112, rank: 2 },
|
||||
{ id: 'demo-3', name: 'Charles Leclerc', rating: 3950, skillLevel: 'pro', nationality: 'MC', racesCompleted: 134, wins: 28, podiums: 67, rank: 3 },
|
||||
{ id: 'demo-4', name: 'Lando Norris', rating: 3820, skillLevel: 'advanced', nationality: 'GB', racesCompleted: 112, wins: 18, podiums: 45, rank: 4 },
|
||||
{ id: 'demo-5', name: 'Carlos Sainz', rating: 3750, skillLevel: 'advanced', nationality: 'ES', racesCompleted: 145, wins: 15, podiums: 52, rank: 5 },
|
||||
{ id: 'demo-6', name: 'Oscar Piastri', rating: 3680, skillLevel: 'advanced', nationality: 'AU', racesCompleted: 78, wins: 8, podiums: 24, rank: 6 },
|
||||
{ id: 'demo-7', name: 'George Russell', rating: 3620, skillLevel: 'advanced', nationality: 'GB', racesCompleted: 98, wins: 6, podiums: 31, rank: 7 },
|
||||
{ id: 'demo-8', name: 'Fernando Alonso', rating: 3580, skillLevel: 'advanced', nationality: 'ES', racesCompleted: 256, wins: 32, podiums: 98, rank: 8 },
|
||||
{ id: 'demo-9', name: 'Nico Hülkenberg', rating: 3420, skillLevel: 'advanced', nationality: 'DE', racesCompleted: 167, wins: 2, podiums: 18, rank: 9 },
|
||||
{ id: 'demo-10', name: 'Yuki Tsunoda', rating: 3250, skillLevel: 'intermediate', nationality: 'JP', racesCompleted: 89, wins: 1, podiums: 8, rank: 10 },
|
||||
{ id: 'demo-11', name: 'Alex Albon', rating: 3180, skillLevel: 'intermediate', nationality: 'TH', racesCompleted: 102, wins: 0, podiums: 4, rank: 11 },
|
||||
{ id: 'demo-12', name: 'Kevin Magnussen', rating: 3050, skillLevel: 'intermediate', nationality: 'DK', racesCompleted: 145, wins: 0, podiums: 2, rank: 12 },
|
||||
{ id: 'demo-13', name: 'Pierre Gasly', rating: 2980, skillLevel: 'intermediate', nationality: 'FR', racesCompleted: 124, wins: 1, podiums: 5, rank: 13 },
|
||||
{ id: 'demo-14', name: 'Esteban Ocon', rating: 2920, skillLevel: 'intermediate', nationality: 'FR', racesCompleted: 118, wins: 1, podiums: 4, rank: 14 },
|
||||
{ id: 'demo-15', name: 'Lance Stroll', rating: 2850, skillLevel: 'intermediate', nationality: 'CA', racesCompleted: 134, wins: 0, podiums: 3, rank: 15 },
|
||||
];
|
||||
|
||||
// ============================================================================
|
||||
// SKILL LEVEL CONFIG
|
||||
// ============================================================================
|
||||
@@ -247,7 +225,7 @@ export default function DriverLeaderboardPage() {
|
||||
};
|
||||
});
|
||||
|
||||
setDrivers(items.length > 0 ? items : DEMO_DRIVERS);
|
||||
setDrivers(items);
|
||||
setLoading(false);
|
||||
};
|
||||
|
||||
|
||||
@@ -51,31 +51,6 @@ interface TeamDisplayData {
|
||||
performanceLevel: SkillLevel;
|
||||
}
|
||||
|
||||
// ============================================================================
|
||||
// DEMO DATA
|
||||
// ============================================================================
|
||||
|
||||
const DEMO_DRIVERS: DriverListItem[] = [
|
||||
{ id: 'demo-1', name: 'Max Verstappen', rating: 4250, skillLevel: 'pro', nationality: 'NL', wins: 47, podiums: 89, rank: 1 },
|
||||
{ id: 'demo-2', name: 'Lewis Hamilton', rating: 4180, skillLevel: 'pro', nationality: 'GB', wins: 52, podiums: 112, rank: 2 },
|
||||
{ id: 'demo-3', name: 'Charles Leclerc', rating: 3950, skillLevel: 'pro', nationality: 'MC', wins: 28, podiums: 67, rank: 3 },
|
||||
{ id: 'demo-4', name: 'Lando Norris', rating: 3820, skillLevel: 'advanced', nationality: 'GB', wins: 18, podiums: 45, rank: 4 },
|
||||
{ id: 'demo-5', name: 'Carlos Sainz', rating: 3750, skillLevel: 'advanced', nationality: 'ES', wins: 15, podiums: 52, rank: 5 },
|
||||
{ id: 'demo-6', name: 'Oscar Piastri', rating: 3680, skillLevel: 'advanced', nationality: 'AU', wins: 8, podiums: 24, rank: 6 },
|
||||
{ id: 'demo-7', name: 'George Russell', rating: 3620, skillLevel: 'advanced', nationality: 'GB', wins: 6, podiums: 31, rank: 7 },
|
||||
{ id: 'demo-8', name: 'Fernando Alonso', rating: 3580, skillLevel: 'advanced', nationality: 'ES', wins: 32, podiums: 98, rank: 8 },
|
||||
{ id: 'demo-9', name: 'Nico Hülkenberg', rating: 3420, skillLevel: 'advanced', nationality: 'DE', wins: 2, podiums: 18, rank: 9 },
|
||||
{ id: 'demo-10', name: 'Yuki Tsunoda', rating: 3250, skillLevel: 'intermediate', nationality: 'JP', wins: 1, podiums: 8, rank: 10 },
|
||||
];
|
||||
|
||||
const DEMO_TEAMS: TeamDisplayData[] = [
|
||||
{ id: 'demo-team-1', name: 'Apex Predators Racing', memberCount: 8, rating: 4850, totalWins: 47, totalRaces: 156, performanceLevel: 'pro' },
|
||||
{ id: 'demo-team-2', name: 'Velocity Esports', memberCount: 12, rating: 5200, totalWins: 63, totalRaces: 198, performanceLevel: 'pro' },
|
||||
{ id: 'demo-team-3', name: 'Nitro Motorsport', memberCount: 6, rating: 4720, totalWins: 38, totalRaces: 112, performanceLevel: 'pro' },
|
||||
{ id: 'demo-team-4', name: 'Horizon Racing Collective', memberCount: 10, rating: 3800, totalWins: 24, totalRaces: 89, performanceLevel: 'advanced' },
|
||||
{ id: 'demo-team-5', name: 'Phoenix Rising eSports', memberCount: 7, rating: 3650, totalWins: 19, totalRaces: 76, performanceLevel: 'advanced' },
|
||||
];
|
||||
|
||||
// ============================================================================
|
||||
// SKILL LEVEL CONFIG
|
||||
// ============================================================================
|
||||
@@ -420,12 +395,12 @@ export default function LeaderboardsPage() {
|
||||
}),
|
||||
);
|
||||
|
||||
setDrivers(driverItems.length > 0 ? driverItems : DEMO_DRIVERS);
|
||||
setTeams(teamData.length > 0 ? teamData : DEMO_TEAMS);
|
||||
setDrivers(driverItems);
|
||||
setTeams(teamData);
|
||||
} catch (error) {
|
||||
console.error('Failed to load leaderboard data:', error);
|
||||
setDrivers(DEMO_DRIVERS);
|
||||
setTeams(DEMO_TEAMS);
|
||||
setDrivers([]);
|
||||
setTeams([]);
|
||||
} finally {
|
||||
setLoading(false);
|
||||
}
|
||||
@@ -435,12 +410,10 @@ export default function LeaderboardsPage() {
|
||||
}, []);
|
||||
|
||||
const handleDriverClick = (driverId: string) => {
|
||||
if (driverId.startsWith('demo-')) return;
|
||||
router.push(`/drivers/${driverId}`);
|
||||
};
|
||||
|
||||
const handleTeamClick = (teamId: string) => {
|
||||
if (teamId.startsWith('demo-team-')) return;
|
||||
router.push(`/teams/${teamId}`);
|
||||
};
|
||||
|
||||
|
||||
@@ -48,223 +48,6 @@ interface TeamDisplayData {
|
||||
languages?: string[];
|
||||
}
|
||||
|
||||
// ============================================================================
|
||||
// DEMO TEAMS DATA
|
||||
// ============================================================================
|
||||
|
||||
const DEMO_TEAMS: TeamDisplayData[] = [
|
||||
{
|
||||
id: 'demo-team-1',
|
||||
name: 'Apex Predators Racing',
|
||||
description: 'Elite GT3 team competing at the highest level.',
|
||||
memberCount: 8,
|
||||
rating: 4850,
|
||||
totalWins: 47,
|
||||
totalRaces: 156,
|
||||
performanceLevel: 'pro',
|
||||
isRecruiting: true,
|
||||
createdAt: new Date(Date.now() - 180 * 24 * 60 * 60 * 1000),
|
||||
specialization: 'mixed',
|
||||
region: '🇺🇸 North America',
|
||||
languages: ['English'],
|
||||
},
|
||||
{
|
||||
id: 'demo-team-2',
|
||||
name: 'Velocity Esports',
|
||||
description: 'Professional sim racing team with sponsors.',
|
||||
memberCount: 12,
|
||||
rating: 5200,
|
||||
totalWins: 63,
|
||||
totalRaces: 198,
|
||||
performanceLevel: 'pro',
|
||||
isRecruiting: false,
|
||||
createdAt: new Date(Date.now() - 365 * 24 * 60 * 60 * 1000),
|
||||
specialization: 'endurance',
|
||||
region: '🇬🇧 Europe',
|
||||
languages: ['English', 'German'],
|
||||
},
|
||||
{
|
||||
id: 'demo-team-3',
|
||||
name: 'Nitro Motorsport',
|
||||
description: 'Championship-winning sprint specialists.',
|
||||
memberCount: 6,
|
||||
rating: 4720,
|
||||
totalWins: 38,
|
||||
totalRaces: 112,
|
||||
performanceLevel: 'pro',
|
||||
isRecruiting: true,
|
||||
createdAt: new Date(Date.now() - 90 * 24 * 60 * 60 * 1000),
|
||||
specialization: 'sprint',
|
||||
region: '🇩🇪 Germany',
|
||||
languages: ['German', 'English'],
|
||||
},
|
||||
{
|
||||
id: 'demo-team-4',
|
||||
name: 'Horizon Racing Collective',
|
||||
description: 'Ambitious team on the rise.',
|
||||
memberCount: 10,
|
||||
rating: 3800,
|
||||
totalWins: 24,
|
||||
totalRaces: 89,
|
||||
performanceLevel: 'advanced',
|
||||
isRecruiting: true,
|
||||
createdAt: new Date(Date.now() - 60 * 24 * 60 * 60 * 1000),
|
||||
specialization: 'mixed',
|
||||
region: '🇳🇱 Netherlands',
|
||||
languages: ['Dutch', 'English'],
|
||||
},
|
||||
{
|
||||
id: 'demo-team-5',
|
||||
name: 'Phoenix Rising eSports',
|
||||
description: 'From the ashes to the podium.',
|
||||
memberCount: 7,
|
||||
rating: 3650,
|
||||
totalWins: 19,
|
||||
totalRaces: 76,
|
||||
performanceLevel: 'advanced',
|
||||
isRecruiting: true,
|
||||
createdAt: new Date(Date.now() - 45 * 24 * 60 * 60 * 1000),
|
||||
specialization: 'endurance',
|
||||
region: '🇫🇷 France',
|
||||
languages: ['French', 'English'],
|
||||
},
|
||||
{
|
||||
id: 'demo-team-6',
|
||||
name: 'Thunderbolt Racing',
|
||||
description: 'Fast and furious sprint racing.',
|
||||
memberCount: 5,
|
||||
rating: 3420,
|
||||
totalWins: 15,
|
||||
totalRaces: 54,
|
||||
performanceLevel: 'advanced',
|
||||
isRecruiting: false,
|
||||
createdAt: new Date(Date.now() - 120 * 24 * 60 * 60 * 1000),
|
||||
specialization: 'sprint',
|
||||
region: '🇮🇹 Italy',
|
||||
languages: ['Italian', 'English'],
|
||||
},
|
||||
{
|
||||
id: 'demo-team-7',
|
||||
name: 'Grid Starters',
|
||||
description: 'Growing together as racers.',
|
||||
memberCount: 9,
|
||||
rating: 2800,
|
||||
totalWins: 11,
|
||||
totalRaces: 67,
|
||||
performanceLevel: 'intermediate',
|
||||
isRecruiting: true,
|
||||
createdAt: new Date(Date.now() - 30 * 24 * 60 * 60 * 1000),
|
||||
specialization: 'mixed',
|
||||
region: '🇪🇸 Spain',
|
||||
languages: ['Spanish', 'English'],
|
||||
},
|
||||
{
|
||||
id: 'demo-team-8',
|
||||
name: 'Midnight Racers',
|
||||
description: 'Night owls who love endurance racing.',
|
||||
memberCount: 6,
|
||||
rating: 2650,
|
||||
totalWins: 8,
|
||||
totalRaces: 42,
|
||||
performanceLevel: 'intermediate',
|
||||
isRecruiting: true,
|
||||
createdAt: new Date(Date.now() - 15 * 24 * 60 * 60 * 1000),
|
||||
specialization: 'endurance',
|
||||
region: '🌍 International',
|
||||
languages: ['English'],
|
||||
},
|
||||
{
|
||||
id: 'demo-team-9',
|
||||
name: 'Casual Speedsters',
|
||||
description: 'Racing for fun, improving together.',
|
||||
memberCount: 4,
|
||||
rating: 2400,
|
||||
totalWins: 5,
|
||||
totalRaces: 31,
|
||||
performanceLevel: 'intermediate',
|
||||
isRecruiting: true,
|
||||
createdAt: new Date(Date.now() - 7 * 24 * 60 * 60 * 1000),
|
||||
specialization: 'sprint',
|
||||
region: '🇵🇱 Poland',
|
||||
languages: ['Polish', 'English'],
|
||||
},
|
||||
{
|
||||
id: 'demo-team-10',
|
||||
name: 'Fresh Rubber Racing',
|
||||
description: 'New team for new racers!',
|
||||
memberCount: 3,
|
||||
rating: 1800,
|
||||
totalWins: 2,
|
||||
totalRaces: 18,
|
||||
performanceLevel: 'beginner',
|
||||
isRecruiting: true,
|
||||
createdAt: new Date(Date.now() - 3 * 24 * 60 * 60 * 1000),
|
||||
specialization: 'mixed',
|
||||
region: '🇧🇷 Brazil',
|
||||
languages: ['Portuguese', 'English'],
|
||||
},
|
||||
{
|
||||
id: 'demo-team-11',
|
||||
name: 'Rookie Revolution',
|
||||
description: 'First time racers welcome!',
|
||||
memberCount: 5,
|
||||
rating: 1650,
|
||||
totalWins: 1,
|
||||
totalRaces: 12,
|
||||
performanceLevel: 'beginner',
|
||||
isRecruiting: true,
|
||||
createdAt: new Date(Date.now() - 5 * 24 * 60 * 60 * 1000),
|
||||
specialization: 'sprint',
|
||||
region: '🇦🇺 Australia',
|
||||
languages: ['English'],
|
||||
},
|
||||
{
|
||||
id: 'demo-team-12',
|
||||
name: 'Pit Lane Pioneers',
|
||||
description: 'Learning endurance racing from scratch.',
|
||||
memberCount: 4,
|
||||
rating: 1500,
|
||||
totalWins: 0,
|
||||
totalRaces: 8,
|
||||
performanceLevel: 'beginner',
|
||||
isRecruiting: true,
|
||||
createdAt: new Date(Date.now() - 2 * 24 * 60 * 60 * 1000),
|
||||
specialization: 'endurance',
|
||||
region: '🇯🇵 Japan',
|
||||
languages: ['Japanese', 'English'],
|
||||
},
|
||||
{
|
||||
id: 'demo-team-13',
|
||||
name: 'Shadow Squadron',
|
||||
description: 'Elite drivers emerging from the shadows.',
|
||||
memberCount: 6,
|
||||
rating: 4100,
|
||||
totalWins: 12,
|
||||
totalRaces: 34,
|
||||
performanceLevel: 'advanced',
|
||||
isRecruiting: true,
|
||||
createdAt: new Date(Date.now() - 1 * 24 * 60 * 60 * 1000),
|
||||
specialization: 'mixed',
|
||||
region: '🇸🇪 Scandinavia',
|
||||
languages: ['Swedish', 'Norwegian', 'English'],
|
||||
},
|
||||
{
|
||||
id: 'demo-team-14',
|
||||
name: 'Turbo Collective',
|
||||
description: 'Fast, furious, and friendly.',
|
||||
memberCount: 4,
|
||||
rating: 3200,
|
||||
totalWins: 7,
|
||||
totalRaces: 28,
|
||||
performanceLevel: 'intermediate',
|
||||
isRecruiting: true,
|
||||
createdAt: new Date(Date.now() - 12 * 60 * 60 * 1000),
|
||||
specialization: 'sprint',
|
||||
region: '🇨🇦 Canada',
|
||||
languages: ['English', 'French'],
|
||||
},
|
||||
];
|
||||
|
||||
// ============================================================================
|
||||
// SKILL LEVEL CONFIG
|
||||
// ============================================================================
|
||||
@@ -537,7 +320,7 @@ export default function TeamLeaderboardPage() {
|
||||
}
|
||||
};
|
||||
|
||||
const teams = [...realTeams, ...DEMO_TEAMS];
|
||||
const teams = realTeams;
|
||||
|
||||
const handleTeamClick = (teamId: string) => {
|
||||
if (teamId.startsWith('demo-team-')) {
|
||||
|
||||
@@ -53,228 +53,6 @@ interface TeamDisplayData {
|
||||
languages?: string[];
|
||||
}
|
||||
|
||||
// ============================================================================
|
||||
// DEMO TEAMS DATA
|
||||
// ============================================================================
|
||||
|
||||
const DEMO_TEAMS: TeamDisplayData[] = [
|
||||
// Pro Teams
|
||||
{
|
||||
id: 'demo-team-1',
|
||||
name: 'Apex Predators Racing',
|
||||
description: 'Elite GT3 team competing at the highest level. Multiple championship winners seeking consistent drivers.',
|
||||
memberCount: 8,
|
||||
rating: 4850,
|
||||
totalWins: 47,
|
||||
totalRaces: 156,
|
||||
performanceLevel: 'pro',
|
||||
isRecruiting: true,
|
||||
createdAt: new Date(Date.now() - 180 * 24 * 60 * 60 * 1000),
|
||||
specialization: 'mixed',
|
||||
region: '🇺🇸 North America',
|
||||
languages: ['English'],
|
||||
},
|
||||
{
|
||||
id: 'demo-team-2',
|
||||
name: 'Velocity Esports',
|
||||
description: 'Professional sim racing team with sponsors. Competing in major endurance events worldwide.',
|
||||
memberCount: 12,
|
||||
rating: 5200,
|
||||
totalWins: 63,
|
||||
totalRaces: 198,
|
||||
performanceLevel: 'pro',
|
||||
isRecruiting: false,
|
||||
createdAt: new Date(Date.now() - 365 * 24 * 60 * 60 * 1000),
|
||||
specialization: 'endurance',
|
||||
region: '🇬🇧 Europe',
|
||||
languages: ['English', 'German'],
|
||||
},
|
||||
{
|
||||
id: 'demo-team-3',
|
||||
name: 'Nitro Motorsport',
|
||||
description: 'Championship-winning sprint specialists. Fast, consistent, and always fighting for podiums.',
|
||||
memberCount: 6,
|
||||
rating: 4720,
|
||||
totalWins: 38,
|
||||
totalRaces: 112,
|
||||
performanceLevel: 'pro',
|
||||
isRecruiting: true,
|
||||
createdAt: new Date(Date.now() - 90 * 24 * 60 * 60 * 1000),
|
||||
specialization: 'sprint',
|
||||
region: '🇩🇪 Germany',
|
||||
languages: ['German', 'English'],
|
||||
},
|
||||
// Advanced Teams
|
||||
{
|
||||
id: 'demo-team-4',
|
||||
name: 'Horizon Racing Collective',
|
||||
description: 'Ambitious team on the rise. Building towards professional competition with dedicated drivers.',
|
||||
memberCount: 10,
|
||||
rating: 3800,
|
||||
totalWins: 24,
|
||||
totalRaces: 89,
|
||||
performanceLevel: 'advanced',
|
||||
isRecruiting: true,
|
||||
createdAt: new Date(Date.now() - 60 * 24 * 60 * 60 * 1000),
|
||||
specialization: 'mixed',
|
||||
region: '🇳🇱 Netherlands',
|
||||
languages: ['Dutch', 'English'],
|
||||
},
|
||||
{
|
||||
id: 'demo-team-5',
|
||||
name: 'Phoenix Rising eSports',
|
||||
description: 'From the ashes to the podium. A team built on improvement and teamwork.',
|
||||
memberCount: 7,
|
||||
rating: 3650,
|
||||
totalWins: 19,
|
||||
totalRaces: 76,
|
||||
performanceLevel: 'advanced',
|
||||
isRecruiting: true,
|
||||
createdAt: new Date(Date.now() - 45 * 24 * 60 * 60 * 1000),
|
||||
specialization: 'endurance',
|
||||
region: '🇫🇷 France',
|
||||
languages: ['French', 'English'],
|
||||
},
|
||||
{
|
||||
id: 'demo-team-6',
|
||||
name: 'Thunderbolt Racing',
|
||||
description: 'Fast and furious sprint racing. We live for wheel-to-wheel battles.',
|
||||
memberCount: 5,
|
||||
rating: 3420,
|
||||
totalWins: 15,
|
||||
totalRaces: 54,
|
||||
performanceLevel: 'advanced',
|
||||
isRecruiting: false,
|
||||
createdAt: new Date(Date.now() - 120 * 24 * 60 * 60 * 1000),
|
||||
specialization: 'sprint',
|
||||
region: '🇮🇹 Italy',
|
||||
languages: ['Italian', 'English'],
|
||||
},
|
||||
// Intermediate Teams
|
||||
{
|
||||
id: 'demo-team-7',
|
||||
name: 'Grid Starters',
|
||||
description: 'Growing together as racers. Friendly competition with a focus on learning and fun.',
|
||||
memberCount: 9,
|
||||
rating: 2800,
|
||||
totalWins: 11,
|
||||
totalRaces: 67,
|
||||
performanceLevel: 'intermediate',
|
||||
isRecruiting: true,
|
||||
createdAt: new Date(Date.now() - 30 * 24 * 60 * 60 * 1000),
|
||||
specialization: 'mixed',
|
||||
region: '🇪🇸 Spain',
|
||||
languages: ['Spanish', 'English'],
|
||||
},
|
||||
{
|
||||
id: 'demo-team-8',
|
||||
name: 'Midnight Racers',
|
||||
description: 'Night owls who love endurance racing. Join us for late-night stints and good vibes.',
|
||||
memberCount: 6,
|
||||
rating: 2650,
|
||||
totalWins: 8,
|
||||
totalRaces: 42,
|
||||
performanceLevel: 'intermediate',
|
||||
isRecruiting: true,
|
||||
createdAt: new Date(Date.now() - 15 * 24 * 60 * 60 * 1000),
|
||||
specialization: 'endurance',
|
||||
region: '🌍 International',
|
||||
languages: ['English'],
|
||||
},
|
||||
{
|
||||
id: 'demo-team-9',
|
||||
name: 'Casual Speedsters',
|
||||
description: 'Racing for fun, improving together. No pressure, just clean racing.',
|
||||
memberCount: 4,
|
||||
rating: 2400,
|
||||
totalWins: 5,
|
||||
totalRaces: 31,
|
||||
performanceLevel: 'intermediate',
|
||||
isRecruiting: true,
|
||||
createdAt: new Date(Date.now() - 7 * 24 * 60 * 60 * 1000),
|
||||
specialization: 'sprint',
|
||||
region: '🇵🇱 Poland',
|
||||
languages: ['Polish', 'English'],
|
||||
},
|
||||
// Beginner Teams
|
||||
{
|
||||
id: 'demo-team-10',
|
||||
name: 'Fresh Rubber Racing',
|
||||
description: 'New team for new racers! Learn the basics together in a supportive environment.',
|
||||
memberCount: 3,
|
||||
rating: 1800,
|
||||
totalWins: 2,
|
||||
totalRaces: 18,
|
||||
performanceLevel: 'beginner',
|
||||
isRecruiting: true,
|
||||
createdAt: new Date(Date.now() - 3 * 24 * 60 * 60 * 1000),
|
||||
specialization: 'mixed',
|
||||
region: '🇧🇷 Brazil',
|
||||
languages: ['Portuguese', 'English'],
|
||||
},
|
||||
{
|
||||
id: 'demo-team-11',
|
||||
name: 'Rookie Revolution',
|
||||
description: 'First time racers welcome! We all start somewhere.',
|
||||
memberCount: 5,
|
||||
rating: 1650,
|
||||
totalWins: 1,
|
||||
totalRaces: 12,
|
||||
performanceLevel: 'beginner',
|
||||
isRecruiting: true,
|
||||
createdAt: new Date(Date.now() - 5 * 24 * 60 * 60 * 1000),
|
||||
specialization: 'sprint',
|
||||
region: '🇦🇺 Australia',
|
||||
languages: ['English'],
|
||||
},
|
||||
{
|
||||
id: 'demo-team-12',
|
||||
name: 'Pit Lane Pioneers',
|
||||
description: 'Learning endurance racing from scratch. Long races, longer friendships.',
|
||||
memberCount: 4,
|
||||
rating: 1500,
|
||||
totalWins: 0,
|
||||
totalRaces: 8,
|
||||
performanceLevel: 'beginner',
|
||||
isRecruiting: true,
|
||||
createdAt: new Date(Date.now() - 2 * 24 * 60 * 60 * 1000),
|
||||
specialization: 'endurance',
|
||||
region: '🇯🇵 Japan',
|
||||
languages: ['Japanese', 'English'],
|
||||
},
|
||||
// Recently Added
|
||||
{
|
||||
id: 'demo-team-13',
|
||||
name: 'Shadow Squadron',
|
||||
description: 'Elite drivers emerging from the shadows. Watch out for us this season.',
|
||||
memberCount: 6,
|
||||
rating: 4100,
|
||||
totalWins: 12,
|
||||
totalRaces: 34,
|
||||
performanceLevel: 'advanced',
|
||||
isRecruiting: true,
|
||||
createdAt: new Date(Date.now() - 1 * 24 * 60 * 60 * 1000),
|
||||
specialization: 'mixed',
|
||||
region: '🇸🇪 Scandinavia',
|
||||
languages: ['Swedish', 'Norwegian', 'English'],
|
||||
},
|
||||
{
|
||||
id: 'demo-team-14',
|
||||
name: 'Turbo Collective',
|
||||
description: 'Fast, furious, and friendly. Sprint racing specialists looking for quick racers.',
|
||||
memberCount: 4,
|
||||
rating: 3200,
|
||||
totalWins: 7,
|
||||
totalRaces: 28,
|
||||
performanceLevel: 'intermediate',
|
||||
isRecruiting: true,
|
||||
createdAt: new Date(Date.now() - 12 * 60 * 60 * 1000),
|
||||
specialization: 'sprint',
|
||||
region: '🇨🇦 Canada',
|
||||
languages: ['English', 'French'],
|
||||
},
|
||||
];
|
||||
|
||||
// ============================================================================
|
||||
// SKILL LEVEL CONFIG
|
||||
// ============================================================================
|
||||
@@ -745,7 +523,7 @@ export default function TeamsPage() {
|
||||
}
|
||||
};
|
||||
|
||||
const teams = [...realTeams, ...DEMO_TEAMS];
|
||||
const teams = realTeams;
|
||||
|
||||
const handleTeamClick = (teamId: string) => {
|
||||
if (teamId.startsWith('demo-team-')) {
|
||||
|
||||
Reference in New Issue
Block a user