diff options
| author | Shpuld Shpludson <shp@cock.li> | 2020-02-28 16:39:47 +0000 |
|---|---|---|
| committer | Shpuld Shpludson <shp@cock.li> | 2020-02-28 16:39:47 +0000 |
| commit | 31225f5d142b51d52bed305f25a37288c9188062 (patch) | |
| tree | ec26cdbf70913cd5176a3345862d5af225991563 /src/components/emoji_reactions | |
| parent | d19c64314ff08391a2649681e6b64d052e600059 (diff) | |
Fix/popover performance
Diffstat (limited to 'src/components/emoji_reactions')
| -rw-r--r-- | src/components/emoji_reactions/emoji_reactions.js | 11 | ||||
| -rw-r--r-- | src/components/emoji_reactions/emoji_reactions.vue | 33 |
2 files changed, 23 insertions, 21 deletions
diff --git a/src/components/emoji_reactions/emoji_reactions.js b/src/components/emoji_reactions/emoji_reactions.js index b799ac9a..ae7f53be 100644 --- a/src/components/emoji_reactions/emoji_reactions.js +++ b/src/components/emoji_reactions/emoji_reactions.js @@ -1,20 +1,17 @@ import UserAvatar from '../user_avatar/user_avatar.vue' +import Popover from '../popover/popover.vue' const EMOJI_REACTION_COUNT_CUTOFF = 12 const EmojiReactions = { name: 'EmojiReactions', components: { - UserAvatar + UserAvatar, + Popover }, props: ['status'], data: () => ({ - showAll: false, - popperOptions: { - modifiers: { - preventOverflow: { padding: { top: 50 }, boundariesElement: 'viewport' } - } - } + showAll: false }), computed: { tooManyReactions () { diff --git a/src/components/emoji_reactions/emoji_reactions.vue b/src/components/emoji_reactions/emoji_reactions.vue index b25c9716..bac4c605 100644 --- a/src/components/emoji_reactions/emoji_reactions.vue +++ b/src/components/emoji_reactions/emoji_reactions.vue @@ -1,15 +1,14 @@ <template> <div class="emoji-reactions"> - <v-popover + <Popover v-for="(reaction) in emojiReactions" :key="reaction.name" - :popper-options="popperOptions" trigger="hover" placement="top" + :offset="{ y: 5 }" > - <div - slot="popover" + slot="content" class="reacted-users" > <div v-if="accountsForEmoji[reaction.name].length"> @@ -24,7 +23,12 @@ :compact="true" /> <div class="reacted-user-names"> - <span class="reacted-user-name" v-html="account.name_html" /> + <!-- eslint-disable vue/no-v-html --> + <span + class="reacted-user-name" + v-html="account.name_html" + /> + <!-- eslint-enable vue/no-v-html --> <span class="reacted-user-screen-name">{{ account.screen_name }}</span> </div> </div> @@ -34,6 +38,7 @@ </div> </div> <button + slot="trigger" class="emoji-reaction btn btn-default" :class="{ 'picked-reaction': reactedWith(reaction.name), 'not-clickable': !loggedIn }" @click="emojiOnClick(reaction.name, $event)" @@ -42,17 +47,16 @@ <span class="reaction-emoji">{{ reaction.name }}</span> <span>{{ reaction.count }}</span> </button> - </v-popover> + </Popover> <a - v-if="tooManyReactions" - @click="toggleShowAll" - class="emoji-reaction-expand faint" - href='javascript:void(0)' - > - {{ showAll ? $t('general.show_less') : showMoreString }} - </a> + v-if="tooManyReactions" + class="emoji-reaction-expand faint" + href="javascript:void(0)" + @click="toggleShowAll" + > + {{ showAll ? $t('general.show_less') : showMoreString }} + </a> </div> - </template> <script src="./emoji_reactions.js" ></script> @@ -78,6 +82,7 @@ display: flex; flex-direction: column; margin-left: 0.5em; + min-width: 5em; img { width: 1em; |
