website refactor
This commit is contained in:
@@ -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>
|
||||
|
||||
Reference in New Issue
Block a user