Kamil Furtak
commited on
Commit
·
e717d25
1
Parent(s):
2056625
Add click outside handler to close ModelSelector dropdown
Browse files
app/components/chat/ModelSelector.tsx
CHANGED
@@ -30,6 +30,20 @@ export const ModelSelector = ({
|
|
30 |
const [focusedIndex, setFocusedIndex] = useState(-1);
|
31 |
const searchInputRef = useRef<HTMLInputElement>(null);
|
32 |
const optionsRef = useRef<(HTMLDivElement | null)[]>([]);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
33 |
|
34 |
// Filter models based on search query
|
35 |
const filteredModels = [...modelList]
|
@@ -176,7 +190,7 @@ export const ModelSelector = ({
|
|
176 |
))}
|
177 |
</select>
|
178 |
|
179 |
-
<div className="relative flex-1 lg:max-w-[70%]" onKeyDown={handleKeyDown}>
|
180 |
<div
|
181 |
className={classNames(
|
182 |
'w-full p-2 rounded-lg border border-bolt-elements-borderColor',
|
|
|
30 |
const [focusedIndex, setFocusedIndex] = useState(-1);
|
31 |
const searchInputRef = useRef<HTMLInputElement>(null);
|
32 |
const optionsRef = useRef<(HTMLDivElement | null)[]>([]);
|
33 |
+
const dropdownRef = useRef<HTMLDivElement>(null);
|
34 |
+
|
35 |
+
useEffect(() => {
|
36 |
+
const handleClickOutside = (event: MouseEvent) => {
|
37 |
+
if (dropdownRef.current && !dropdownRef.current.contains(event.target as Node)) {
|
38 |
+
setIsModelDropdownOpen(false);
|
39 |
+
setModelSearchQuery('');
|
40 |
+
}
|
41 |
+
};
|
42 |
+
|
43 |
+
document.addEventListener('mousedown', handleClickOutside);
|
44 |
+
|
45 |
+
return () => document.removeEventListener('mousedown', handleClickOutside);
|
46 |
+
}, []);
|
47 |
|
48 |
// Filter models based on search query
|
49 |
const filteredModels = [...modelList]
|
|
|
190 |
))}
|
191 |
</select>
|
192 |
|
193 |
+
<div className="relative flex-1 lg:max-w-[70%]" onKeyDown={handleKeyDown} ref={dropdownRef}>
|
194 |
<div
|
195 |
className={classNames(
|
196 |
'w-full p-2 rounded-lg border border-bolt-elements-borderColor',
|