This commit is contained in:
2025-12-13 18:39:20 +01:00
parent bb0497f429
commit e53af6a0e7
20 changed files with 762 additions and 503 deletions

View File

@@ -2,6 +2,7 @@
import Link from 'next/link';
import { AlertTriangle, ExternalLink } from 'lucide-react';
import InlinePenaltyButton from './InlinePenaltyButton';
type PenaltyTypeDTO =
| 'time_penalty'
@@ -41,6 +42,8 @@ interface ResultsTableProps {
fastestLapTime?: number | undefined;
penalties?: PenaltyData[];
currentDriverId?: string | undefined;
isAdmin?: boolean;
onPenaltyClick?: (driver: DriverDTO) => void;
}
export default function ResultsTable({
@@ -50,6 +53,8 @@ export default function ResultsTable({
fastestLapTime,
penalties = [],
currentDriverId,
isAdmin = false,
onPenaltyClick,
}: ResultsTableProps) {
const getDriver = (driverId: string): DriverDTO | undefined => {
return drivers.find((d) => d.id === driverId);
@@ -118,6 +123,7 @@ export default function ResultsTable({
<th className="text-left py-3 px-4 text-sm font-semibold text-gray-400">Points</th>
<th className="text-left py-3 px-4 text-sm font-semibold text-gray-400">+/-</th>
<th className="text-left py-3 px-4 text-sm font-semibold text-gray-400">Penalties</th>
{isAdmin && <th className="text-left py-3 px-4 text-sm font-semibold text-gray-400">Actions</th>}
</tr>
</thead>
<tbody>
@@ -246,6 +252,17 @@ export default function ResultsTable({
<span className="text-gray-500"></span>
)}
</td>
{isAdmin && (
<td className="py-3 px-4">
{driver && onPenaltyClick && (
<InlinePenaltyButton
driver={driver}
onPenaltyClick={onPenaltyClick}
isAdmin={isAdmin}
/>
)}
</td>
)}
</tr>
);
})}