This commit is contained in:
2025-12-04 18:05:46 +01:00
parent 88c6befc7c
commit 9fa21a488a
21 changed files with 1156 additions and 388 deletions

View File

@@ -6,6 +6,7 @@ import {
getFeedRepository,
getRaceRepository,
getResultRepository,
getDriverRepository,
} from '@/lib/di-container';
export const dynamic = 'force-dynamic';
@@ -21,7 +22,8 @@ export default async function DashboardPage() {
const feedRepository = getFeedRepository();
const raceRepository = getRaceRepository();
const resultRepository = getResultRepository();
const driverRepository = getDriverRepository();
const [feedItems, upcomingRaces, allResults] = await Promise.all([
feedRepository.getFeedForDriver(session.user.primaryDriverId ?? ''),
raceRepository.findAll(),
@@ -35,21 +37,27 @@ export default async function DashboardPage() {
const completedRaces = upcomingRaces.filter((race) => race.status === 'completed');
const latestResults = completedRaces.slice(0, 4).map((race) => {
const raceResults = allResults.filter((result) => result.raceId === race.id);
const winner = raceResults.sort((a, b) => a.position - b.position)[0];
return {
raceId: race.id,
leagueId: race.leagueId,
track: race.track,
car: race.car,
scheduledAt: race.scheduledAt,
winnerDriverId: winner?.driverId ?? '',
winnerName: 'Race Winner',
positionChange: winner ? winner.getPositionChange() : 0,
};
});
const latestResults = await Promise.all(
completedRaces.slice(0, 4).map(async (race) => {
const raceResults = allResults.filter((result) => result.raceId === race.id);
const winner = raceResults.slice().sort((a, b) => a.position - b.position)[0];
const winnerDriverId = winner?.driverId ?? '';
const winnerDriver = winnerDriverId
? await driverRepository.findById(winnerDriverId)
: null;
return {
raceId: race.id,
leagueId: race.leagueId,
track: race.track,
car: race.car,
scheduledAt: race.scheduledAt,
winnerDriverId,
winnerName: winnerDriver?.name ?? 'Race Winner',
positionChange: winner ? winner.getPositionChange() : 0,
};
}),
);
return (
<main className="min-h-screen bg-deep-graphite">