From 4551e82b6bb8baf0bdfd778943c2af57b8a63b27 Mon Sep 17 00:00:00 2001 From: Florie Guibert <fguibert@gitlab.com> Date: Mon, 22 Apr 2024 17:06:24 +1000 Subject: [PATCH] Display default text for empty sidebar dropdown --- .../work_item_sidebar_dropdown_widget_with_edit.vue | 9 +++++++-- locale/gitlab.pot | 3 +++ .../work_item_sidebar_dropdown_widget_with_edit_spec.js | 8 ++++++++ 3 files changed, 18 insertions(+), 2 deletions(-) diff --git a/app/assets/javascripts/work_items/components/shared/work_item_sidebar_dropdown_widget_with_edit.vue b/app/assets/javascripts/work_items/components/shared/work_item_sidebar_dropdown_widget_with_edit.vue index 14276cac23a47..fe1d73e9b94db 100644 --- a/app/assets/javascripts/work_items/components/shared/work_item_sidebar_dropdown_widget_with_edit.vue +++ b/app/assets/javascripts/work_items/components/shared/work_item_sidebar_dropdown_widget_with_edit.vue @@ -3,7 +3,7 @@ import { GlButton, GlForm, GlLoadingIcon, GlCollapsibleListbox } from '@gitlab/u import { isEmpty, debounce } from 'lodash'; import { DEFAULT_DEBOUNCE_AND_THROTTLE_MS } from '~/lib/utils/constants'; -import { s__, __ } from '~/locale'; +import { s__, __, sprintf } from '~/locale'; export default { i18n: { @@ -116,6 +116,11 @@ export default { resetButton() { return this.resetButtonLabel || this.$options.i18n.resetButtonText; }, + toggleText() { + return !this.toggleDropdownText && !this.hasValue + ? sprintf(__(`No %{label}`), { label: this.dropdownLabel.toLowerCase() }) + : this.toggleDropdownText; + }, }, watch: { itemValue: { @@ -212,7 +217,7 @@ export default { :infinite-scroll="infiniteScroll" :searching="loading" :header-text="headerText" - :toggle-text="toggleDropdownText" + :toggle-text="toggleText" :no-results-text="$options.i18n.noMatchingResults" :items="listItems" :selected="localSelectedItem" diff --git a/locale/gitlab.pot b/locale/gitlab.pot index 3896d4b92ce75..e66b6071511ac 100644 --- a/locale/gitlab.pot +++ b/locale/gitlab.pot @@ -33827,6 +33827,9 @@ msgstr "" msgid "No %{header} for this request." msgstr "" +msgid "No %{label}" +msgstr "" + msgid "No %{providerTitle} repositories found" msgstr "" diff --git a/spec/frontend/work_items/components/shared/work_item_sidebar_dropdown_widget_with_edit_spec.js b/spec/frontend/work_items/components/shared/work_item_sidebar_dropdown_widget_with_edit_spec.js index 3278ef657182d..673d3cc95507d 100644 --- a/spec/frontend/work_items/components/shared/work_item_sidebar_dropdown_widget_with_edit_spec.js +++ b/spec/frontend/work_items/components/shared/work_item_sidebar_dropdown_widget_with_edit_spec.js @@ -220,5 +220,13 @@ describe('WorkItemSidebarDropdownWidgetWithEdit component', () => { expect(findCollapsibleListbox().props('infiniteScrollLoading')).toBe(true); }); + + it('displays default dropdown label when no value is selected', async () => { + createComponent({ isEditing: true }); + + await nextTick(); + + expect(findCollapsibleListbox().props('toggleText')).toBe('No iteration'); + }); }); }); -- GitLab