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

@@ -1,6 +1,7 @@
'use client';
import { useState, useEffect } from 'react';
import Link from 'next/link';
import { useRouter, useParams } from 'next/navigation';
import { getDriverRepository } from '@/lib/di-container';
import DriverProfile from '@/components/drivers/DriverProfile';
@@ -10,7 +11,11 @@ import Breadcrumbs from '@/components/layout/Breadcrumbs';
import { EntityMappers } from '@gridpilot/racing/application/mappers/EntityMappers';
import type { DriverDTO } from '@gridpilot/racing/application/dto/DriverDTO';
export default function DriverDetailPage() {
export default function DriverDetailPage({
searchParams,
}: {
searchParams?: { [key: string]: string | string[] | undefined };
}) {
const router = useRouter();
const params = useParams();
const driverId = params.id as string;
@@ -19,6 +24,15 @@ export default function DriverDetailPage() {
const [loading, setLoading] = useState(true);
const [error, setError] = useState<string | null>(null);
const from =
typeof searchParams?.from === 'string' ? searchParams.from : undefined;
const leagueId =
typeof searchParams?.leagueId === 'string'
? searchParams.leagueId
: undefined;
const backLink =
from === 'league' && leagueId ? `/leagues/${leagueId}` : null;
useEffect(() => {
loadDriver();
// eslint-disable-next-line react-hooks/exhaustive-deps
@@ -84,6 +98,17 @@ export default function DriverDetailPage() {
return (
<div className="min-h-screen bg-deep-graphite py-12 px-4 sm:px-6 lg:px-8">
<div className="max-w-6xl mx-auto">
{backLink && (
<div className="mb-4">
<Link
href={backLink}
className="inline-flex items-center text-xs font-medium text-gray-300 hover:text-white"
>
Back to league
</Link>
</div>
)}
{/* Breadcrumb */}
<Breadcrumbs
items={[