diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2021-05-19 12:10:19 +0300 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2021-05-19 12:10:19 +0300 |
commit | 389312d00908adf98b30daac746805ec8447f92b (patch) | |
tree | 22409e071143486cd7d72eeefd115ce634f43c84 /app/assets/javascripts/set_status_modal | |
parent | e173c316de15057b099a93053c9ef16180d6d1de (diff) |
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'app/assets/javascripts/set_status_modal')
-rw-r--r-- | app/assets/javascripts/set_status_modal/set_status_modal_wrapper.vue | 50 |
1 files changed, 41 insertions, 9 deletions
diff --git a/app/assets/javascripts/set_status_modal/set_status_modal_wrapper.vue b/app/assets/javascripts/set_status_modal/set_status_modal_wrapper.vue index c754af5c7de..758a799b37f 100644 --- a/app/assets/javascripts/set_status_modal/set_status_modal_wrapper.vue +++ b/app/assets/javascripts/set_status_modal/set_status_modal_wrapper.vue @@ -18,6 +18,7 @@ import { BV_SHOW_MODAL, BV_HIDE_MODAL } from '~/lib/utils/constants'; import { __, s__, sprintf } from '~/locale'; import { updateUserStatus } from '~/rest_api'; import { timeRanges } from '~/vue_shared/constants'; +import glFeatureFlagsMixin from '~/vue_shared/mixins/gl_feature_flags_mixin'; import EmojiMenuInModal from './emoji_menu_in_modal'; import { isUserBusy } from './utils'; @@ -44,10 +45,12 @@ export default { GlFormCheckbox, GlDropdown, GlDropdownItem, + EmojiPicker: () => import('~/emoji/components/picker.vue'), }, directives: { GlTooltip: GlTooltipDirective, }, + mixins: [glFeatureFlagsMixin()], props: { defaultEmoji: { type: String, @@ -102,7 +105,9 @@ export default { this.$root.$emit(BV_SHOW_MODAL, this.modalId); }, beforeDestroy() { - this.emojiMenu.destroy(); + if (this.emojiMenu) { + this.emojiMenu.destroy(); + } }, methods: { closeModal() { @@ -121,13 +126,16 @@ export default { this.noEmoji = this.emoji === ''; this.defaultEmojiTag = Emoji.glEmojiTag(this.defaultEmoji); - this.emojiMenu = new EmojiMenuInModal( - Emoji, - toggleEmojiMenuButtonSelector, - emojiMenuClass, - this.setEmoji, - this.$refs.userStatusForm, - ); + if (!this.glFeatures.improvedEmojiPicker) { + this.emojiMenu = new EmojiMenuInModal( + Emoji, + toggleEmojiMenuButtonSelector, + emojiMenuClass, + this.setEmoji, + this.$refs.userStatusForm, + ); + } + this.setDefaultEmoji(); }) .catch(() => createFlash(__('Failed to load emoji list.'))); @@ -164,7 +172,12 @@ export default { this.emoji = emoji; this.noEmoji = false; this.clearEmoji(); - this.emojiTag = emojiTag; + + if (this.glFeatures.improvedEmojiPicker) { + this.emojiTag = Emoji.glEmojiTag(this.emoji); + } else { + this.emojiTag = emojiTag; + } }, clearEmoji() { if (this.emojiTag) { @@ -241,7 +254,26 @@ export default { <div ref="userStatusForm" class="form-group position-relative m-0"> <div class="input-group gl-mb-5"> <span class="input-group-prepend"> + <emoji-picker + v-if="glFeatures.improvedEmojiPicker" + dropdown-class="gl-h-full" + toggle-class="btn emoji-menu-toggle-button gl-px-4! gl-rounded-top-right-none! gl-rounded-bottom-right-none!" + @click="setEmoji" + > + <template #button-content> + <span v-html="emojiTag"></span> + <span + v-show="noEmoji" + class="js-no-emoji-placeholder no-emoji-placeholder position-relative" + > + <gl-icon name="slight-smile" class="award-control-icon-neutral" /> + <gl-icon name="smiley" class="award-control-icon-positive" /> + <gl-icon name="smile" class="award-control-icon-super-positive" /> + </span> + </template> + </emoji-picker> <button + v-else ref="toggleEmojiMenuButton" v-gl-tooltip.bottom.hover :title="s__('SetStatusModal|Add status emoji')" |