2026-04-23 22:09:25 -07:00
|
|
|
import { Button } from "~/components/ui/button";
|
|
|
|
|
|
|
|
|
|
interface CommissionerDraftControlsProps {
|
|
|
|
|
seasonStatus: string;
|
|
|
|
|
isDraftComplete: boolean;
|
|
|
|
|
isPaused: boolean;
|
|
|
|
|
onStart: () => void;
|
|
|
|
|
onPause: () => void;
|
|
|
|
|
onResume: () => void;
|
|
|
|
|
buttonClassName?: string;
|
2026-05-16 23:37:29 -07:00
|
|
|
autoStartDraft?: boolean;
|
|
|
|
|
secondsUntilAutoStart?: number | null;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function formatCountdown(seconds: number): string {
|
|
|
|
|
const h = Math.floor(seconds / 3600);
|
|
|
|
|
const m = Math.floor((seconds % 3600) / 60);
|
|
|
|
|
const s = seconds % 60;
|
|
|
|
|
if (h > 0) return `${h}:${String(m).padStart(2, "0")}:${String(s).padStart(2, "0")}`;
|
|
|
|
|
return `${m}:${String(s).padStart(2, "0")}`;
|
2026-04-23 22:09:25 -07:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export function CommissionerDraftControls({
|
|
|
|
|
seasonStatus,
|
|
|
|
|
isDraftComplete,
|
|
|
|
|
isPaused,
|
|
|
|
|
onStart,
|
|
|
|
|
onPause,
|
|
|
|
|
onResume,
|
|
|
|
|
buttonClassName,
|
2026-05-16 23:37:29 -07:00
|
|
|
autoStartDraft,
|
|
|
|
|
secondsUntilAutoStart,
|
2026-04-23 22:09:25 -07:00
|
|
|
}: CommissionerDraftControlsProps) {
|
|
|
|
|
if (seasonStatus === "pre_draft") {
|
2026-05-16 23:37:29 -07:00
|
|
|
if (autoStartDraft && secondsUntilAutoStart !== null && secondsUntilAutoStart !== undefined && secondsUntilAutoStart > 0) {
|
|
|
|
|
return (
|
|
|
|
|
<div className="flex items-center gap-2">
|
|
|
|
|
<span className="text-sm text-muted-foreground font-mono tabular-nums">
|
|
|
|
|
Auto-starts in {formatCountdown(secondsUntilAutoStart)}
|
|
|
|
|
</span>
|
|
|
|
|
<Button variant="ghost" size="sm" className={buttonClassName} onClick={onStart}>
|
|
|
|
|
Start Now
|
|
|
|
|
</Button>
|
|
|
|
|
</div>
|
|
|
|
|
);
|
|
|
|
|
}
|
|
|
|
|
if (autoStartDraft && secondsUntilAutoStart === 0) {
|
|
|
|
|
return <span className="text-sm text-muted-foreground">Starting…</span>;
|
|
|
|
|
}
|
2026-04-23 22:09:25 -07:00
|
|
|
return (
|
|
|
|
|
<Button className={buttonClassName} onClick={onStart}>
|
|
|
|
|
Start Draft
|
|
|
|
|
</Button>
|
|
|
|
|
);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (seasonStatus === "draft" && !isDraftComplete) {
|
|
|
|
|
return isPaused ? (
|
|
|
|
|
<Button className={buttonClassName} onClick={onResume}>
|
|
|
|
|
Resume Draft
|
|
|
|
|
</Button>
|
|
|
|
|
) : (
|
|
|
|
|
<Button className={buttonClassName} variant="outline" onClick={onPause}>
|
|
|
|
|
Pause Draft
|
|
|
|
|
</Button>
|
|
|
|
|
);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return null;
|
|
|
|
|
}
|