import { redirect } from 'next/navigation'; import { DriverRankingsPageQuery } from '@/lib/page-queries/page-queries/DriverRankingsPageQuery'; import { DriverRankingsViewDataBuilder } from '@/lib/builders/view-data/DriverRankingsViewDataBuilder'; import { DriverRankingsTemplate } from '@/templates/DriverRankingsTemplate'; // ============================================================================ // MAIN PAGE COMPONENT // ============================================================================ export default async function DriverLeaderboardPage() { // Execute the page query const result = await DriverRankingsPageQuery.execute(); // Handle different result statuses switch (result.status) { case 'notFound': redirect('/404'); case 'redirect': redirect(result.to); case 'error': // For now, show empty state. In a real app, you'd pass error to client return (
Error loading driver rankings

Please try again later

); case 'ok': const viewData = DriverRankingsViewDataBuilder.build(result.dto); const hasData = (viewData.drivers?.length ?? 0) > 0; if (!hasData) { return ( ); } return ( ); } }