) => {
+ if (compositionFlgRef.current
+ || ev.nativeEvent.isComposing
+ || ev.nativeEvent.keyCode === 229)
+ {
+ if (ev.key === 'Enter')
+ ev.preventDefault ()
+ return
+ }
+
switch (ev.key)
{
case 'ArrowDown':
@@ -90,13 +118,12 @@ const TagSearch: FC = () => {
break
case 'Enter':
- if (activeIndex < 0)
- break
- ev.preventDefault ()
{
- const selected = suggestions[activeIndex]
- if (selected)
- handleTagSelect (selected)
+ const selected = suggestionsVsbl ? suggestions[activeIndex] : null
+ if (selected == null)
+ break
+ ev.preventDefault ()
+ handleTagSelect (selected)
}
break
@@ -105,20 +132,6 @@ const TagSearch: FC = () => {
setSuggestionsVsbl (false)
break
}
- if (ev.key === 'Enter' && (!(suggestionsVsbl) || activeIndex < 0))
- {
- const parts = search.split (' ')
- const match = parts.map (t => t.toLowerCase ()).includes ('type:or') ? 'any' : 'all'
- navigate (`/posts?${
- (new URLSearchParams ({
- tags: parts.map (t => t.toLowerCase ())
- .filter (t => t !== 'type:or')
- .join (' '),
- match }))
- .toString () }`)
- setSuggestionsVsbl (false)
- setRequest ({ query: '' })
- }
}
const handleTagSelect = (tag: Tag) => {
@@ -144,8 +157,9 @@ const TagSearch: FC = () => {
}, [location.search])
return (
-
+
)
+ )
}
export default TagSearch