diff --git a/src/components/Common/SearchByMultipleFields.tsx b/src/components/Common/SearchByMultipleFields.tsx index 1d897fbdf96..47372deda5f 100644 --- a/src/components/Common/SearchByMultipleFields.tsx +++ b/src/components/Common/SearchByMultipleFields.tsx @@ -137,6 +137,12 @@ const SearchByMultipleFields: React.FC = ({ } }, [open]); + useEffect(() => { + if (autoFocus) { + inputRef.current?.focus(); + } + }, [autoFocus, open, selectedOptionIndex]); + useEffect(() => { const handleKeyDown = (e: KeyboardEvent) => { if (e.key === "k" && (e.metaKey || e.ctrlKey)) { @@ -154,9 +160,11 @@ const SearchByMultipleFields: React.FC = ({ setSearchValue(""); } } + if (e.key === "Backspace" && searchValue.length === 0) { e.preventDefault(); } + if (open) { if (e.key === "ArrowDown") { setFocusedIndex((prevIndex) => @@ -179,12 +187,6 @@ const SearchByMultipleFields: React.FC = ({ return () => document.removeEventListener("keydown", handleKeyDown); }, [focusedIndex, open, handleOptionChange, options, searchValue]); - useEffect(() => { - if (autoFocus) { - inputRef.current?.focus(); - } - }, [autoFocus, open, selectedOptionIndex]); - useEffect(() => { if (selectedOption.value !== searchValue) { setSearchValue(selectedOption.value || "");