aboutsummaryrefslogtreecommitdiff
path: root/src/components/react_button/react_button.js
diff options
context:
space:
mode:
Diffstat (limited to 'src/components/react_button/react_button.js')
-rw-r--r--src/components/react_button/react_button.js39
1 files changed, 39 insertions, 0 deletions
diff --git a/src/components/react_button/react_button.js b/src/components/react_button/react_button.js
new file mode 100644
index 00000000..f0931446
--- /dev/null
+++ b/src/components/react_button/react_button.js
@@ -0,0 +1,39 @@
+import Popover from '../popover/popover.vue'
+import { mapGetters } from 'vuex'
+
+const ReactButton = {
+ props: ['status'],
+ data () {
+ return {
+ filterWord: ''
+ }
+ },
+ components: {
+ Popover
+ },
+ methods: {
+ 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 })
+ }
+ close()
+ }
+ },
+ computed: {
+ commonEmojis () {
+ return ['👍', '😠', '👀', '😂', '🔥']
+ },
+ emojis () {
+ if (this.filterWord !== '') {
+ return this.$store.state.instance.emoji.filter(emoji => emoji.displayText.includes(this.filterWord))
+ }
+ return this.$store.state.instance.emoji || []
+ },
+ ...mapGetters(['mergedConfig'])
+ }
+}
+
+export default ReactButton