prevent single scenario being selected

This commit is contained in:
Daniel Roth 2026-03-02 09:42:50 +00:00
parent 29541ebb21
commit d4b9c23a01

View file

@ -86,8 +86,10 @@ export function RecommendationsOptions({
const [isApplying, setIsApplying] = useState(false);
const [open, setOpen] = useState(false);
const [selectedScenarios, setSelectedScenarios] = useState<number[]>([]);
const [warning, setWarning] = useState<string | null>(null);
const toggleScenario = (id: number) => {
setWarning("")
setSelectedScenarios((prev) =>
prev.includes(id)
? prev.filter((s) => s !== id)
@ -96,10 +98,12 @@ export function RecommendationsOptions({
};
const handleSelectAll = () => {
setWarning("")
setSelectedScenarios(scenarios.map((s) => s.id));
};
const handleDeselectAll = () => {
setWarning("")
setSelectedScenarios([]);
};
@ -115,6 +119,13 @@ export function RecommendationsOptions({
};
const handleSubmit = async () => {
console.log('handleSubmit', selectedScenarios, selectedScenarios.length);
if (selectedScenarios.length === 1) {
setWarning("Cannot generate recommendations for a single scenario");
return;
}
setWarning(null);
setIsApplying(true);
await onApply({
@ -127,8 +138,8 @@ export function RecommendationsOptions({
setIsApplying(false);
setOpen(false);
};
const handleCancel = () => {
setWarning("")
setSelectedScenarios([]);
setOpen(false);
};
@ -222,6 +233,10 @@ export function RecommendationsOptions({
</div>
)}
{warning && (
<p className="text-sm text-red-600 font-medium">{warning}</p>
)}
<div className="flex justify-end gap-2 pt-2">
<Button variant="ghost" size="sm" onClick={handleCancel}>
Cancel