website cleanup

This commit is contained in:
2025-12-24 21:44:58 +01:00
parent 9b683a59d3
commit d78854a4c6
277 changed files with 6141 additions and 2693 deletions

View File

@@ -3,6 +3,7 @@
import { useEffectiveDriverId } from '@/hooks/useEffectiveDriverId';
import { getMembership } from '@/lib/leagueMembership';
import { useState } from 'react';
import { useServices } from '@/lib/services/ServiceProvider';
import Button from '../ui/Button';
interface JoinLeagueButtonProps {
@@ -18,6 +19,7 @@ export default function JoinLeagueButton({
}: JoinLeagueButtonProps) {
const currentDriverId = useEffectiveDriverId();
const membership = getMembership(leagueId, currentDriverId);
const { leagueMembershipService } = useServices();
const [loading, setLoading] = useState(false);
const [error, setError] = useState<string | null>(null);
@@ -28,21 +30,13 @@ export default function JoinLeagueButton({
setLoading(true);
setError(null);
try {
const membershipRepo = getLeagueMembershipRepository();
if (isInviteOnly) {
const existing = await membershipRepo.getMembership(leagueId, currentDriverId);
if (existing) {
throw new Error('Already a member or have a pending request');
}
throw new Error(
'Requesting to join invite-only leagues is not available in this alpha build.',
);
}
const useCase = getJoinLeagueUseCase();
await useCase.execute({ leagueId, driverId: currentDriverId });
await leagueMembershipService.joinLeague(leagueId, currentDriverId);
onMembershipChange?.();
setShowConfirmDialog(false);
@@ -57,15 +51,11 @@ export default function JoinLeagueButton({
setLoading(true);
setError(null);
try {
const membershipRepo = getLeagueMembershipRepository();
const existing = await membershipRepo.getMembership(leagueId, currentDriverId);
if (!existing) {
throw new Error('Not a member of this league');
}
if (existing.role === 'owner') {
if (membership?.role === 'owner') {
throw new Error('League owner cannot leave the league');
}
await membershipRepo.removeMembership(leagueId, currentDriverId);
await leagueMembershipService.leaveLeague(leagueId, currentDriverId);
onMembershipChange?.();
setShowConfirmDialog(false);
@@ -171,4 +161,4 @@ export default function JoinLeagueButton({
)}
</>
);
}
}