diff options
| author | jared <jaredrmain@gmail.com> | 2019-04-08 11:50:12 -0400 |
|---|---|---|
| committer | jared <jaredrmain@gmail.com> | 2019-04-08 11:50:12 -0400 |
| commit | 2ab915b48680b3c176a201700b2dd7e859329b05 (patch) | |
| tree | 14ed8c9590d05344d1dc213cc7ac599818d2a476 | |
| parent | 820a6543c7dc4e99d2a193c5ce05cc0c9453a8d8 (diff) | |
#101 - click outside of emoji implementation
| -rw-r--r-- | src/components/emoji-selector/emoji-selector.js | 12 | ||||
| -rw-r--r-- | src/components/emoji-selector/emoji-selector.vue | 6 |
2 files changed, 15 insertions, 3 deletions
diff --git a/src/components/emoji-selector/emoji-selector.js b/src/components/emoji-selector/emoji-selector.js index 6d45df1f..969b880b 100644 --- a/src/components/emoji-selector/emoji-selector.js +++ b/src/components/emoji-selector/emoji-selector.js @@ -3,6 +3,12 @@ const filterByKeyword = (list, keyword = '') => { } const EmojiSelector = { + mounted () { + document.body.addEventListener('click', this.outsideClicked) + }, + destroyed () { + document.body.removeEventListener('click', this.outsideClicked) + }, data () { return { open: false, @@ -14,6 +20,12 @@ const EmojiSelector = { togglePanel () { this.open = !this.open }, + insideClicked (e) { + e.stopPropagation() + }, + outsideClicked () { + this.open = false + }, onEmoji (emoji) { const value = emoji.image_url ? `:${emoji.shortcode}:` : emoji.utf this.$emit('emoji', ` ${value} `) diff --git a/src/components/emoji-selector/emoji-selector.vue b/src/components/emoji-selector/emoji-selector.vue index d5d63543..98d2642e 100644 --- a/src/components/emoji-selector/emoji-selector.vue +++ b/src/components/emoji-selector/emoji-selector.vue @@ -1,6 +1,6 @@ <template> - <div class="emoji-dropdown"> - <span class="emoji-dropdown-toggle" @click="togglePanel"> + <div class="emoji-dropdown" @click.prevent="insideClicked"> + <span class="emoji-dropdown-toggle" @click.prevent="togglePanel"> <i class="icon-smile"></i> </span> <div class="emoji-dropdown-menu panel panel-default" v-if="open"> @@ -48,7 +48,7 @@ &-toggle { cursor: pointer; position: absolute; - top: -25px; + top: -23px; right: 2px; line-height: 1; |
