"use client"
import { cn } from "@/lib/utils"
import type { Mode } from "@/components/logic"
interface SettingsPanelProps {
mode: Mode
totalTasks: number
pickCount: number
rounds: number
allowRepeat: boolean
singleAllowRepeat: boolean
selectedRecords: { number: number; colorIndex: number }[]
onModeChange: (v: Mode) => void
onTotalTasksChange: (v: number) => void
onPickCountChange: (v: number) => void
onRoundsChange: (v: number) => void
onAllowRepeatChange: (v: boolean) => void
onSingleAllowRepeatChange: (v: boolean) => void
onRoll: () => void
onReset: () => void
isRolling: boolean
errorMsg: string
}
function FieldRow({
label,
hint,
value,
onChange,
min = 1,
}: {
label: string
hint: string
value: number
onChange: (v: number) => void
min?: number
}) {
return (
)
}
export function SettingsPanel({
mode,
totalTasks,
pickCount,
rounds,
allowRepeat,
singleAllowRepeat,
selectedRecords,
onModeChange,
onTotalTasksChange,
onPickCountChange,
onRoundsChange,
onAllowRepeatChange,
onSingleAllowRepeatChange,
onRoll,
onReset,
isRolling,
errorMsg,
}: SettingsPanelProps) {
const repeatDisabled = rounds < 2
const isSingleMode = mode === "single"
return (
{/* Mode selector */}
{/* Section label */}
CONFIG
{/* Fields */}
{!isSingleMode && (
<>
>
)}
{/* Single mode: Allow repeat toggle */}
{isSingleMode && (
)}
{/* Group mode only: Toggle */}
{!isSingleMode && (
<>
{/* Toggle */}
>
)}
{/* Error */}
{errorMsg && (
ERR: {errorMsg}
)}
{/* Action buttons */}
{/* Single mode: Roll button */}
{isSingleMode && (
)}
{/* Single mode: Reset button */}
{isSingleMode && selectedRecords.length > 0 && (
)}
{/* Multi mode: Execute button */}
{!isSingleMode && (
)}
)
}