diff --git a/app/vmui/packages/vmui/src/components/Configurators/QueryEditor/QueryEditor.tsx b/app/vmui/packages/vmui/src/components/Configurators/QueryEditor/QueryEditor.tsx index 53ea0a7ad4..8adcccb74a 100644 --- a/app/vmui/packages/vmui/src/components/Configurators/QueryEditor/QueryEditor.tsx +++ b/app/vmui/packages/vmui/src/components/Configurators/QueryEditor/QueryEditor.tsx @@ -1,4 +1,4 @@ -import React, { FC, useRef } from "preact/compat"; +import React, { FC, useRef, useState } from "preact/compat"; import { KeyboardEvent } from "react"; import { ErrorTypes } from "../../../types"; import TextField from "../../Main/TextField/TextField"; @@ -32,6 +32,7 @@ const QueryEditor: FC = ({ disabled = false }) => { + const [openAutocomplete, setOpenAutocomplete] = useState(false); const autocompleteAnchorEl = useRef(null); const handleSelect = (val: string) => { @@ -59,7 +60,7 @@ const QueryEditor: FC = ({ } // execute query - if (enter && !shiftKey) { + if (enter && !shiftKey && !openAutocomplete) { onEnter(); } }; @@ -84,6 +85,7 @@ const QueryEditor: FC = ({ options={options} anchor={autocompleteAnchorEl} onSelect={handleSelect} + onOpenAutocomplete={setOpenAutocomplete} /> )} ; diff --git a/app/vmui/packages/vmui/src/components/Main/Autocomplete/Autocomplete.tsx b/app/vmui/packages/vmui/src/components/Main/Autocomplete/Autocomplete.tsx index 3cb15557e8..bea6228f51 100644 --- a/app/vmui/packages/vmui/src/components/Main/Autocomplete/Autocomplete.tsx +++ b/app/vmui/packages/vmui/src/components/Main/Autocomplete/Autocomplete.tsx @@ -10,7 +10,8 @@ interface AutocompleteProps { anchor: Ref disabled?: boolean maxWords?: number - onSelect: (val: string) => void + onSelect: (val: string) => void, + onOpenAutocomplete?: (val: boolean) => void } const Autocomplete: FC = ({ @@ -20,6 +21,7 @@ const Autocomplete: FC = ({ disabled, maxWords = 1, onSelect, + onOpenAutocomplete }) => { const wrapperEl = useRef(null); @@ -99,6 +101,10 @@ const Autocomplete: FC = ({ setFocusOption(-1); }, [foundOptions]); + useEffect(() => { + onOpenAutocomplete && onOpenAutocomplete(openAutocomplete); + }, [openAutocomplete]); + useClickOutside(wrapperEl, handleCloseAutocomplete); return (