website cleanup

This commit is contained in:
2025-12-25 00:19:36 +01:00
parent d78854a4c6
commit 9486455b9e
82 changed files with 1223 additions and 363 deletions

View File

@@ -5,14 +5,11 @@ import LeagueChampionshipStats from '@/components/leagues/LeagueChampionshipStat
import Card from '@/components/ui/Card';
import { useEffectiveDriverId } from '@/hooks/useEffectiveDriverId';
import type { LeagueMembership } from '@/lib/types/LeagueMembership';
import type { MembershipRoleDTO } from '@/lib/types/generated/MembershipRoleDTO';
import { LeagueRoleUtility } from '@/lib/utilities/LeagueRoleUtility';
import { useServices } from '@/lib/services/ServiceProvider';
import type { DriverDTO } from '@/lib/types/generated/DriverDTO';
import { DriverViewModel } from '@/lib/view-models/DriverViewModel';
import { LeagueStandingsViewModel } from '@/lib/view-models/LeagueStandingsViewModel';
import { StandingEntryViewModel } from '@/lib/view-models/StandingEntryViewModel';
import type { LeagueStandingDTO } from '@/lib/types/generated/LeagueStandingDTO';
import { useParams } from 'next/navigation';
import { useCallback, useEffect, useState } from 'react';
@@ -23,8 +20,7 @@ export default function LeagueStandingsPage() {
const { leagueService } = useServices();
const [standings, setStandings] = useState<StandingEntryViewModel[]>([]);
const [drivers, setDrivers] = useState<DriverDTO[]>([]);
const [driverVms, setDriverVms] = useState<DriverViewModel[]>([]);
const [drivers, setDrivers] = useState<DriverViewModel[]>([]);
const [memberships, setMemberships] = useState<LeagueMembership[]>([]);
const [loading, setLoading] = useState(true);
const [error, setError] = useState<string | null>(null);
@@ -34,8 +30,7 @@ export default function LeagueStandingsPage() {
try {
const vm = await leagueService.getLeagueStandings(leagueId, currentDriverId);
setStandings(vm.standings);
setDrivers(vm.drivers as unknown as DriverDTO[]);
setDriverVms(vm.drivers.map((d) => new DriverViewModel(d)));
setDrivers(vm.drivers.map((d) => new DriverViewModel(d)));
setMemberships(vm.memberships);
// Check if current user is admin
@@ -65,7 +60,7 @@ export default function LeagueStandingsPage() {
}
};
const handleUpdateRole = async (driverId: string, newRole: MembershipRoleDTO['value']) => {
const handleUpdateRole = async (driverId: string, newRole: string) => {
try {
await leagueService.updateMemberRole(leagueId, currentDriverId, driverId, newRole);
await loadData();
@@ -93,7 +88,7 @@ export default function LeagueStandingsPage() {
return (
<div className="space-y-6">
{/* Championship Stats */}
<LeagueChampionshipStats standings={standings} drivers={driverVms} />
<LeagueChampionshipStats standings={standings} drivers={drivers} />
<Card>
<h2 className="text-xl font-semibold text-white mb-4">Championship Standings</h2>

View File

@@ -25,7 +25,7 @@ import { useParams } from 'next/navigation';
import { useEffect, useMemo, useState } from 'react';
// Local type definitions to replace core imports
type PenaltyType = 'time_penalty' | 'grid_penalty' | 'points_deduction' | 'disqualification' | 'warning' | 'license_points';
type PenaltyType = 'time_penalty' | 'grid_penalty' | 'points_deduction' | 'disqualification' | 'warning' | 'license_points' | 'probation' | 'fine' | 'race_ban';
export default function LeagueStewardingPage() {
const params = useParams();