diff --git a/ui/src/formkit/inputs/category-select/CategorySelect.vue b/ui/src/formkit/inputs/category-select/CategorySelect.vue index 37524c549..a019f57ab 100644 --- a/ui/src/formkit/inputs/category-select/CategorySelect.vue +++ b/ui/src/formkit/inputs/category-select/CategorySelect.vue @@ -171,19 +171,23 @@ const handleKeydown = (e: KeyboardEvent) => { : convertTreeToCategories(categoriesTree.value); const index = categoryIndices.findIndex( - (tag) => tag.metadata.name === selectedCategory.value?.metadata.name + (category) => + category.metadata.name === selectedCategory.value?.metadata.name ); if (index > 0) { selectedCategory.value = categoryIndices[index - 1]; + } else { + selectedCategory.value = undefined; } scrollToSelected(); } if (e.key === "Enter") { - if (searchResults.value.length === 0 && text.value) { + if (!selectedCategory.value && text.value) { handleCreateCategory(); return; } + if (selectedCategory.value) { handleSelect(selectedCategory.value); text.value = ""; @@ -193,12 +197,10 @@ const handleKeydown = (e: KeyboardEvent) => { }; const scrollToSelected = () => { - if (!selectedCategory.value) { - return; - } - const selectedNode = document.getElementById( - `category-${selectedCategory.value?.metadata.name}` - ); + const selectedNodeName = selectedCategory.value + ? selectedCategory.value?.metadata.name + : "create"; + const selectedNode = document.getElementById(`category-${selectedNodeName}`); if (selectedNode) { selectedNode.scrollIntoView({ behavior: "smooth", @@ -291,11 +293,15 @@ const handleDelete = () => {