diff --git a/app/assets/javascripts/content_editor/components/suggestions_dropdown.vue b/app/assets/javascripts/content_editor/components/suggestions_dropdown.vue index 6535d9eaa5d..b34ebe85eb4 100644 --- a/app/assets/javascripts/content_editor/components/suggestions_dropdown.vue +++ b/app/assets/javascripts/content_editor/components/suggestions_dropdown.vue @@ -161,6 +161,8 @@ export default { }, onKeyDown({ event }) { + if (!this.items.length) return false; + if (event.key === 'ArrowUp') { this.upHandler(); return true; diff --git a/app/assets/javascripts/content_editor/extensions/suggestions.js b/app/assets/javascripts/content_editor/extensions/suggestions.js index 0560322191e..f7ff2fd6647 100644 --- a/app/assets/javascripts/content_editor/extensions/suggestions.js +++ b/app/assets/javascripts/content_editor/extensions/suggestions.js @@ -57,6 +57,7 @@ function createSuggestionPlugin({ render: () => { let component; let popup; + let isHidden = false; const onUpdate = (props) => { component?.updateProps({ ...props, loading: false }); @@ -88,6 +89,12 @@ function createSuggestionPlugin({ popup = tippy('body', { getReferenceClientRect: props.clientRect, appendTo: () => document.body, + onHide: () => { + isHidden = true; + }, + onShow: () => { + isHidden = false; + }, content: component.element, showOnCreate: true, interactive: true, @@ -100,6 +107,8 @@ function createSuggestionPlugin({ onUpdate, onKeyDown(props) { + if (isHidden) return false; + if (props.event.key === 'Escape') { popup?.[0].hide(); diff --git a/app/assets/javascripts/work_items/components/notes/work_item_comment_form.vue b/app/assets/javascripts/work_items/components/notes/work_item_comment_form.vue index c7d8a50f402..62e1ebc50a8 100644 --- a/app/assets/javascripts/work_items/components/notes/work_item_comment_form.vue +++ b/app/assets/javascripts/work_items/components/notes/work_item_comment_form.vue @@ -195,7 +195,6 @@ export default { :autocomplete-data-sources="autocompleteDataSources" :form-field-props="formFieldProps" :add-spacing-classes="false" - data-testid="work-item-add-comment" use-bottom-toolbar supports-quick-actions :autofocus="autofocus" diff --git a/app/assets/javascripts/work_items/components/notes/work_item_note_actions.vue b/app/assets/javascripts/work_items/components/notes/work_item_note_actions.vue index 2d36a89169a..cb9a560f9e1 100644 --- a/app/assets/javascripts/work_items/components/notes/work_item_note_actions.vue +++ b/app/assets/javascripts/work_items/components/notes/work_item_note_actions.vue @@ -207,7 +207,6 @@ export default { type.name === WORK_ITEM_TYPE_VALUE_OBJECTIVE).id; }, @@ -267,7 +270,7 @@ export default { icon="ellipsis_v" data-testid="work-item-actions-dropdown" text-sr-only - :text="__('More actions')" + :toggle-text="__('More actions')" category="tertiary" :auto-close="false" no-caret @@ -282,7 +285,6 @@ export default { - + + + + + - - - - + + + + + + + +
- +

{{ s__( diff --git a/app/assets/javascripts/work_items/components/work_item_detail.vue b/app/assets/javascripts/work_items/components/work_item_detail.vue index d95b434a829..c8ea2a12038 100644 --- a/app/assets/javascripts/work_items/components/work_item_detail.vue +++ b/app/assets/javascripts/work_items/components/work_item_detail.vue @@ -409,7 +409,7 @@ export default {