diff --git a/src/app/admin/_components/FormField.tsx b/src/app/admin/_components/FormField.tsx index 0f64d88..e923387 100644 --- a/src/app/admin/_components/FormField.tsx +++ b/src/app/admin/_components/FormField.tsx @@ -45,17 +45,37 @@ export function ParticipantLimits({ onMinChange: (v: number) => void; onMaxChange: (v: number) => void; }) { + const [minLocal, setMinLocal] = useState(min); + const [maxLocal, setMaxLocal] = useState(max); + const maxError = maxLocal > 0 && minLocal > 0 && maxLocal < minLocal; + + function handleMin(v: number) { + setMinLocal(v); + const newMaxError = maxLocal > 0 && v > maxLocal; + if (!newMaxError) onMinChange(v); + } + + function handleMax(v: number) { + setMaxLocal(v); + const newMaxError = v > 0 && minLocal > 0 && v < minLocal; + if (!newMaxError) onMaxChange(v); + } + return (
Если записей меньше — занятие можно отменить
0 = без лимита. При заполнении — лист ожидания
+ handleMax(parseInt(e.target.value) || 0)} + className={`${inputCls} ${maxError ? "!border-red-500/50" : ""}`} /> ++ {maxError ? "Макс. не может быть меньше мин." : "0 = без лимита. При заполнении — лист ожидания"} +