aboutsummaryrefslogtreecommitdiff
path: root/src/components/react_button
diff options
context:
space:
mode:
Diffstat (limited to 'src/components/react_button')
-rw-r--r--src/components/react_button/react_button.js27
-rw-r--r--src/components/react_button/react_button.vue33
2 files changed, 24 insertions, 36 deletions
diff --git a/src/components/react_button/react_button.js b/src/components/react_button/react_button.js
index a6cf5b94..f0931446 100644
--- a/src/components/react_button/react_button.js
+++ b/src/components/react_button/react_button.js
@@ -1,39 +1,30 @@
+import Popover from '../popover/popover.vue'
import { mapGetters } from 'vuex'
const ReactButton = {
- props: ['status', 'loggedIn'],
+ props: ['status'],
data () {
return {
- showTooltip: false,
- filterWord: '',
- popperOptions: {
- modifiers: {
- preventOverflow: { padding: { top: 50 }, boundariesElement: 'viewport' }
- }
- }
+ filterWord: ''
}
},
+ components: {
+ Popover
+ },
methods: {
- openReactionSelect () {
- this.showTooltip = true
- this.filterWord = ''
- },
- closeReactionSelect () {
- this.showTooltip = false
- },
- addReaction (event, emoji) {
+ addReaction (event, emoji, close) {
const existingReaction = this.status.emoji_reactions.find(r => r.name === emoji)
if (existingReaction && existingReaction.me) {
this.$store.dispatch('unreactWithEmoji', { id: this.status.id, emoji })
} else {
this.$store.dispatch('reactWithEmoji', { id: this.status.id, emoji })
}
- this.closeReactionSelect()
+ close()
}
},
computed: {
commonEmojis () {
- return ['❤️', '😠', '👀', '😂', '🔥']
+ return ['👍', '😠', '👀', '😂', '🔥']
},
emojis () {
if (this.filterWord !== '') {
diff --git a/src/components/react_button/react_button.vue b/src/components/react_button/react_button.vue
index fb43ebaf..0b34add1 100644
--- a/src/components/react_button/react_button.vue
+++ b/src/components/react_button/react_button.vue
@@ -1,13 +1,14 @@
<template>
- <v-popover
- :popper-options="popperOptions"
- :open="showTooltip"
- trigger="manual"
+ <Popover
+ trigger="click"
placement="top"
+ :offset="{ y: 5 }"
class="react-button-popover"
- @hide="closeReactionSelect"
>
- <div slot="popover">
+ <div
+ slot="content"
+ slot-scope="{close}"
+ >
<div class="reaction-picker-filter">
<input
v-model="filterWord"
@@ -19,7 +20,7 @@
v-for="emoji in commonEmojis"
:key="emoji"
class="emoji-button"
- @click="addReaction($event, emoji)"
+ @click="addReaction($event, emoji, close)"
>
{{ emoji }}
</span>
@@ -28,23 +29,19 @@
v-for="(emoji, key) in emojis"
:key="key"
class="emoji-button"
- @click="addReaction($event, emoji.replacement)"
+ @click="addReaction($event, emoji.replacement, close)"
>
{{ emoji.replacement }}
</span>
<div class="reaction-bottom-fader" />
</div>
</div>
- <div
- v-if="loggedIn"
- @click.prevent="openReactionSelect"
- >
- <i
- class="icon-smile button-icon add-reaction-button"
- :title="$t('tool_tip.add_reaction')"
- />
- </div>
- </v-popover>
+ <i
+ slot="trigger"
+ class="icon-smile button-icon add-reaction-button"
+ :title="$t('tool_tip.add_reaction')"
+ />
+ </Popover>
</template>
<script src="./react_button.js" ></script>