diff --git a/app/routes/api/draft.adjust-time-bank.ts b/app/routes/api/draft.adjust-time-bank.ts index 3bf5591..9109fbd 100644 --- a/app/routes/api/draft.adjust-time-bank.ts +++ b/app/routes/api/draft.adjust-time-bank.ts @@ -33,6 +33,10 @@ export async function action(args: any) { return Response.json({ error: "Season not found" }, { status: 404 }); } + if (season.status !== "draft") { + return Response.json({ error: "Draft is not currently active" }, { status: 409 }); + } + const isCommissioner = await db.query.commissioners.findFirst({ where: and( eq(schema.commissioners.leagueId, season.leagueId), diff --git a/app/routes/leagues/$leagueId.draft.$seasonId.tsx b/app/routes/leagues/$leagueId.draft.$seasonId.tsx index 8968e9e..1c75430 100644 --- a/app/routes/leagues/$leagueId.draft.$seasonId.tsx +++ b/app/routes/leagues/$leagueId.draft.$seasonId.tsx @@ -837,31 +837,41 @@ export default function DraftRoom() { const unitMultipliers = { seconds: 1, minutes: 60, hours: 3600 }; const totalSeconds = Math.round(amount * unitMultipliers[timeBankUnit]); + + if (totalSeconds === 0) { + toast.error("Adjustment rounds to 0 seconds — please enter a larger value"); + return; + } + const adjustment = timeBankDirection === "add" ? totalSeconds : -totalSeconds; setIsAdjustingTimeBank(true); - const formData = new FormData(); - formData.append("seasonId", season.id); - formData.append("teamId", timeBankTeamId); - formData.append("adjustment", adjustment.toString()); + try { + const formData = new FormData(); + formData.append("seasonId", season.id); + formData.append("teamId", timeBankTeamId); + formData.append("adjustment", adjustment.toString()); - const response = await fetch("/api/draft/adjust-time-bank", { - method: "POST", - body: formData, - }); + const response = await fetch("/api/draft/adjust-time-bank", { + method: "POST", + body: formData, + }); - setIsAdjustingTimeBank(false); - - if (response.ok) { - const data = await response.json(); - setTeamTimers((prev) => ({ ...prev, [timeBankTeamId]: data.timeRemaining })); - const teamName = draftSlots.find((s) => s.team.id === timeBankTeamId)?.team.name; - toast.success(`Time bank adjusted for ${teamName}`); - setTimeBankDialogOpen(false); - setTimeBankTeamId(null); - } else { - const error = await response.json(); - toast.error(error.error || "Failed to adjust time bank"); + if (response.ok) { + const data = await response.json(); + setTeamTimers((prev) => ({ ...prev, [timeBankTeamId]: data.timeRemaining })); + const teamName = draftSlots.find((s) => s.team.id === timeBankTeamId)?.team.name; + toast.success(`Time bank adjusted for ${teamName}`); + setTimeBankDialogOpen(false); + setTimeBankTeamId(null); + } else { + const error = await response.json(); + toast.error(error.error || "Failed to adjust time bank"); + } + } catch { + toast.error("Network error — failed to adjust time bank"); + } finally { + setIsAdjustingTimeBank(false); } }; @@ -1541,7 +1551,7 @@ export default function DraftRoom() {