diff --git a/src/components/TagInput.tsx b/src/components/TagInput.tsx index c2291547..417ebdd9 100644 --- a/src/components/TagInput.tsx +++ b/src/components/TagInput.tsx @@ -56,7 +56,8 @@ export default function TagInput({ : option, ] .filter(Boolean) - .map(option => option.toLocaleLowerCase().trim()).join(',')); + .map(parameterize) + .join(',')); setSelectedOptionIndex(undefined); } }, [onChange, selectedOptions]); @@ -110,7 +111,9 @@ export default function TagInput({ break; case 'ArrowDown': setSelectedOptionIndex(i => { - if (i === undefined || i >= optionsFiltered.length - 1) { + if (i === undefined) { + return 1; + } else if (i >= optionsFiltered.length - 1) { return 0; } else { return i + 1; @@ -120,7 +123,8 @@ export default function TagInput({ case 'ArrowUp': setSelectedOptionIndex(i => { if (i === undefined || i === 0) { - return optionsFiltered.length - 1; + inputRef.current?.focus(); + return undefined; } else { return i - 1; } @@ -162,7 +166,8 @@ export default function TagInput({ >