aboutsummaryrefslogtreecommitdiff
path: root/src/components/status
diff options
context:
space:
mode:
Diffstat (limited to 'src/components/status')
-rw-r--r--src/components/status/status.js23
-rw-r--r--src/components/status/status.vue47
2 files changed, 7 insertions, 63 deletions
diff --git a/src/components/status/status.js b/src/components/status/status.js
index 18617938..81b57667 100644
--- a/src/components/status/status.js
+++ b/src/components/status/status.js
@@ -12,6 +12,7 @@ import LinkPreview from '../link-preview/link-preview.vue'
import AvatarList from '../avatar_list/avatar_list.vue'
import Timeago from '../timeago/timeago.vue'
import StatusPopover from '../status_popover/status_popover.vue'
+import EmojiReactions from '../emoji_reactions/emoji_reactions.vue'
import generateProfileLink from 'src/services/user_profile_link_generator/user_profile_link_generator'
import fileType from 'src/services/file_type/file_type.service'
import { processHtml } from 'src/services/tiny_post_html_processor/tiny_post_html_processor.service.js'
@@ -311,9 +312,6 @@ const Status = {
hidePostStats () {
return this.mergedConfig.hidePostStats
},
- emojiReactions () {
- return this.status.emojiReactions
- },
...mapGetters(['mergedConfig']),
...mapState({
betterShadow: state => state.interface.browserSupport.cssFilter,
@@ -334,7 +332,8 @@ const Status = {
LinkPreview,
AvatarList,
Timeago,
- StatusPopover
+ StatusPopover,
+ EmojiReactions
},
methods: {
visibilityIcon (visibility) {
@@ -418,22 +417,6 @@ const Status = {
setMedia () {
const attachments = this.attachmentSize === 'hide' ? this.status.attachments : this.galleryAttachments
return () => this.$store.dispatch('setMedia', attachments)
- },
- reactedWith (emoji) {
- return this.status.reactedWithEmoji.includes(emoji)
- },
- reactWith (emoji) {
- this.$store.dispatch('reactWithEmoji', { id: this.status.id, emoji })
- },
- unreact (emoji) {
- this.$store.dispatch('unreactWithEmoji', { id: this.status.id, emoji })
- },
- emojiOnClick (emoji, event) {
- if (this.reactedWith(emoji)) {
- this.unreact(emoji)
- } else {
- this.reactWith(emoji)
- }
}
},
watch: {
diff --git a/src/components/status/status.vue b/src/components/status/status.vue
index 4ea1b74b..87e8b5da 100644
--- a/src/components/status/status.vue
+++ b/src/components/status/status.vue
@@ -354,18 +354,10 @@
</div>
</transition>
- <div v-if="isFocused" class="emoji-reactions">
- <button
- v-for="(users, emoji) in emojiReactions"
- :key="emoji"
- class="emoji-reaction btn btn-default"
- :class="{ 'picked-reaction': reactedWith(emoji) }"
- @click="emojiOnClick(emoji, $event)"
- >
- <span v-if="users">{{ users.length }}</span>
- <span>{{ emoji }}</span>
- </button>
- </div>
+ <EmojiReactions
+ v-if="isFocused"
+ :status="status"
+ />
<div
v-if="!noHeading && !isPreview"
@@ -789,37 +781,6 @@ $status-margin: 0.75em;
}
}
-.emoji-reactions {
- display: flex;
- margin-top: 0.25em;
- flex-wrap: wrap;
-}
-
-.emoji-reaction {
- padding: 0 0.5em;
- margin-right: 0.5em;
- margin-top: 0.5em;
- display: flex;
- align-items: center;
- justify-content: center;
- box-sizing: border-box;
- :first-child {
- margin-right: 0.25em;
- }
- :last-child {
- width: 1.5em;
- }
- &:focus {
- outline: none;
- }
-}
-
-.picked-reaction {
- border: 1px solid var(--link, $fallback--link);
- margin-left: -1px; // offset the border, can't use inset shadows either
- margin-right: calc(0.5em - 1px);
-}
-
.button-icon.icon-reply {
&:not(.button-icon-disabled):hover,
&.button-icon-active {