diff --git a/src/components/chat/view/subcomponents/ModelSelectorBar.tsx b/src/components/chat/view/subcomponents/ModelSelectorBar.tsx index 838d4cd..9a8ae3b 100644 --- a/src/components/chat/view/subcomponents/ModelSelectorBar.tsx +++ b/src/components/chat/view/subcomponents/ModelSelectorBar.tsx @@ -72,7 +72,7 @@ export default function ModelSelectorBar({ ? options.filter((o) => o.label.toLowerCase().includes(search.toLowerCase())) : options; - // Close on outside click + // Close on outside click (use click, not mousedown, so item selection fires first) useEffect(() => { if (!open) return; const handler = (e: MouseEvent) => { @@ -81,8 +81,8 @@ export default function ModelSelectorBar({ setSearch(''); } }; - document.addEventListener('mousedown', handler); - return () => document.removeEventListener('mousedown', handler); + document.addEventListener('click', handler); + return () => document.removeEventListener('click', handler); }, [open]); useEffect(() => { @@ -103,7 +103,7 @@ export default function ModelSelectorBar({ }; return ( -
+
{/* Left: provider label */}
@@ -123,13 +123,14 @@ export default function ModelSelectorBar({ {open && ( -
+
setSearch(e.target.value)} + onClick={(e) => e.stopPropagation()} placeholder="Search models..." className="w-full rounded-lg bg-muted/50 px-2.5 py-1.5 text-xs text-foreground placeholder:text-muted-foreground/50 outline-none border border-border/40 focus:border-border" /> @@ -142,8 +143,13 @@ export default function ModelSelectorBar({