website refactor

This commit is contained in:
2026-01-21 18:40:49 +01:00
parent 69319ce1d4
commit ea58909070
18 changed files with 1051 additions and 267 deletions

View File

@@ -11,24 +11,21 @@ import { Icon } from '@/ui/Icon';
import { Group } from '@/ui/Group';
import { Calendar, Plus } from 'lucide-react';
import { DateDisplay } from '@/lib/display-objects/DateDisplay';
import {
registerForRaceAction,
withdrawFromRaceAction,
navigateToEditRaceAction,
navigateToRescheduleRaceAction,
navigateToRaceResultsAction
} from '@/app/actions/leagueScheduleActions';
interface LeagueScheduleTemplateProps {
viewData: LeagueScheduleViewData;
onRegister: (raceId: string) => Promise<void>;
onWithdraw: (raceId: string) => Promise<void>;
onEdit: (raceId: string) => void;
onReschedule: (raceId: string) => void;
onResultsClick: (raceId: string) => void;
onCreateRace?: () => void;
}
export function LeagueScheduleTemplate({
viewData,
onRegister,
onWithdraw,
onEdit,
onReschedule,
onResultsClick,
onCreateRace
}: LeagueScheduleTemplateProps) {
const [selectedRace, setSelectedRace] = useState<{
@@ -85,15 +82,27 @@ export function LeagueScheduleTemplate({
};
const handleRegister = async (raceId: string) => {
await onRegister(raceId);
await registerForRaceAction(raceId, viewData.leagueId, viewData.currentDriverId || '');
setModalOpen(false);
};
const handleWithdraw = async (raceId: string) => {
await onWithdraw(raceId);
await withdrawFromRaceAction(raceId, viewData.currentDriverId || '', viewData.leagueId);
setModalOpen(false);
};
const handleEdit = (raceId: string) => {
navigateToEditRaceAction(raceId, viewData.leagueId);
};
const handleReschedule = (raceId: string) => {
navigateToRescheduleRaceAction(raceId, viewData.leagueId);
};
const handleResultsClick = (raceId: string) => {
navigateToRaceResultsAction(raceId, viewData.leagueId);
};
return (
<Box display="flex" flexDirection="col" gap={8}>
<Box as="header" display="flex" flexDirection="col" gap={2}>
@@ -122,10 +131,10 @@ export function LeagueScheduleTemplate({
isAdmin={viewData.isAdmin}
onRegister={handleRegister}
onWithdraw={handleWithdraw}
onEdit={onEdit}
onReschedule={onReschedule}
onEdit={handleEdit}
onReschedule={handleReschedule}
onRaceDetail={handleRaceDetail}
onResultsClick={onResultsClick}
onResultsClick={handleResultsClick}
/>
{selectedRace && (
@@ -135,7 +144,7 @@ export function LeagueScheduleTemplate({
onClose={handleCloseModal}
onRegister={() => handleRegister(selectedRace.id)}
onWithdraw={() => handleWithdraw(selectedRace.id)}
onResultsClick={() => onResultsClick(selectedRace.id)}
onResultsClick={() => handleResultsClick(selectedRace.id)}
/>
)}
</Box>