Add multi-select mode to BeoSelector and ObjektSelector

CustomSelect gains keepOpen prop: dropdown stays open after each
selection, closes via Fertig button or tap outside. ObjektSelector
separates Neu into its own button to keep the dropdown flow clean.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-04-27 18:17:56 +02:00
parent e4f3e7750a
commit 71f4ad1792
3 changed files with 35 additions and 18 deletions

View File

@@ -12,9 +12,10 @@ interface Props {
options: SelectOption[];
placeholder: string;
onChange: (value: string) => void;
keepOpen?: boolean;
}
export default function CustomSelect({ options, placeholder, onChange }: Props) {
export default function CustomSelect({ options, placeholder, onChange, keepOpen = false }: Props) {
const [open, setOpen] = useState(false);
const ref = useRef<HTMLDivElement>(null);
@@ -29,7 +30,7 @@ export default function CustomSelect({ options, placeholder, onChange }: Props)
}, [open]);
function select(value: string) {
setOpen(false);
if (!keepOpen) setOpen(false);
onChange(value);
}
@@ -62,6 +63,15 @@ export default function CustomSelect({ options, placeholder, onChange }: Props)
{opt.label}
</button>
))}
{keepOpen && (
<button
type="button"
onClick={() => setOpen(false)}
className="w-full px-4 py-3 text-base font-medium text-center bg-gray-100 hover:bg-gray-200 text-gray-700 rounded-b-lg border-t-2 border-gray-300"
>
Fertig
</button>
)}
</div>
)}
</div>