diff --git a/src/components/common/TagInput.jsx b/src/components/common/TagInput.jsx index 6430197e..d0517223 100644 --- a/src/components/common/TagInput.jsx +++ b/src/components/common/TagInput.jsx @@ -77,6 +77,27 @@ useEffect(() => { setTags((prev) => prev.slice(0, -1)); } }; + const handleInputKey = (e) => { + const key = e.key?.toLowerCase(); + + if ((key === "enter" || key === " " || e.code === "Space") && input.trim() !== "") { + e.preventDefault(); + const existing = options.find( + (opt) => opt.name.toLowerCase() === input.trim().toLowerCase() + ); + const newTag = existing + ? existing + : { + id: null, + name: input.trim(), + description: input.trim(), + }; + addTag(newTag); + } else if ((key === "backspace" || e.code === "Backspace") && input === "") { + setTags((prev) => prev.slice(0, -1)); + } +}; + const handleSuggestionClick = (suggestion) => { addTag(suggestion); @@ -122,6 +143,7 @@ useEffect(() => { value={input} onChange={(e) => setInput(e.target.value)} onKeyDown={handleInputKeyDown} + onKeyUp={handleInputKey} placeholder={placeholder} style={{ border: "none",