From 89809ad197cae6fc90155e70e98eb81a1afb421f Mon Sep 17 00:00:00 2001 From: Rainer Simon Date: Thu, 9 Jul 2020 17:51:43 +0200 Subject: [PATCH] Behavior bugfixes --- src/editor/widgets/Autocomplete.js | 14 +++++++++++--- themes/default/editor/widgets/_autocomplete.scss | 1 - themes/default/editor/widgets/tag/_tag.scss | 4 ++-- 3 files changed, 13 insertions(+), 6 deletions(-) diff --git a/src/editor/widgets/Autocomplete.js b/src/editor/widgets/Autocomplete.js index 911132b..a86274d 100644 --- a/src/editor/widgets/Autocomplete.js +++ b/src/editor/widgets/Autocomplete.js @@ -12,6 +12,7 @@ const Autocomplete = props => { const onInputValueChange = ({ inputValue }) => { props.onChange(inputValue); + setInputItems( props.vocabulary.filter(item => item.toLowerCase().startsWith(inputValue.toLowerCase()))) @@ -26,10 +27,17 @@ const Autocomplete = props => { getItemProps, } = useCombobox({ items: inputItems, onInputValueChange }); + // TODO onEnter? const onKeyDown = evt => { - // Only forward key events if the dropdown is closed, or no option selected) - if (!isOpen || highlightedIndex == -1) - props.onKeyDown(evt); + if (evt.which == 13) { + if (!isOpen || highlightedIndex == -1) { + setInputItems([]); // To prevent the popup from showing up afterwards + props.onKeyDown(evt); + } + } else if (evt.which == 40 && props.content.length == 0) { + // To make options appear on key down + setInputItems(props.vocabulary); + } } return ( diff --git a/themes/default/editor/widgets/_autocomplete.scss b/themes/default/editor/widgets/_autocomplete.scss index 5f9eed7..68727df 100644 --- a/themes/default/editor/widgets/_autocomplete.scss +++ b/themes/default/editor/widgets/_autocomplete.scss @@ -25,7 +25,6 @@ padding:0; list-style-type:none; background-color:#fff; - min-width:100%; border-radius:3px; border:1px solid #d6d7d9; box-sizing:border-box; diff --git a/themes/default/editor/widgets/tag/_tag.scss b/themes/default/editor/widgets/tag/_tag.scss index 6dce0b6..38ae70f 100644 --- a/themes/default/editor/widgets/tag/_tag.scss +++ b/themes/default/editor/widgets/tag/_tag.scss @@ -15,7 +15,7 @@ } ul.r6o-taglist { - flex:1; + flex:0; white-space:nowrap; li { @@ -88,7 +88,7 @@ } .r6o-autocomplete { - flex:2; + flex:1; li { font-size:14px;