diff --git a/src/components/emoji_picker/emoji_picker.js b/src/components/emoji_picker/emoji_picker.js
index bce5026e..03870a99 100644
--- a/src/components/emoji_picker/emoji_picker.js
+++ b/src/components/emoji_picker/emoji_picker.js
@@ -17,6 +17,7 @@ const EmojiPicker = {
keyword: '',
activeGroup: 'custom',
showingStickers: false,
+ zoomEmoji: false,
spamMode: false
}
},
@@ -60,6 +61,13 @@ const EmojiPicker = {
},
onStickerUploadFailed (e) {
this.$emit('sticker-upload-failed', e)
+ },
+ setZoomEmoji (e, emoji) {
+ this.zoomEmoji = emoji
+ const { x, y } = e.target.getBoundingClientRect()
+ console.log(e.target)
+ this.$refs['zoom-portal'].style.left = (x - 32) + 'px'
+ this.$refs['zoom-portal'].style.top = (y - 32) + 'px'
}
},
watch: {
diff --git a/src/components/emoji_picker/emoji_picker.scss b/src/components/emoji_picker/emoji_picker.scss
index e3a83bdd..872af2de 100644
--- a/src/components/emoji_picker/emoji_picker.scss
+++ b/src/components/emoji_picker/emoji_picker.scss
@@ -10,6 +10,20 @@
margin: 0 !important;
z-index: 1;
+ .zoom-portal {
+ position: fixed;
+ pointer-events: none;
+ width: 96px;
+ height: 96px;
+ font-size: 96px;
+ line-height: 96px;
+ z-index: 10;
+ img {
+ width: 100%;
+ height: 100%;
+ }
+ }
+
.spam-mode {
padding: 7px;
line-height: normal;
@@ -135,6 +149,10 @@
cursor: pointer;
+ &:hover {
+ opacity: 0
+ }
+
img {
max-width: 100%;
max-height: 100%;
diff --git a/src/components/emoji_picker/emoji_picker.vue b/src/components/emoji_picker/emoji_picker.vue
index 901520aa..5a8961d2 100644
--- a/src/components/emoji_picker/emoji_picker.vue
+++ b/src/components/emoji_picker/emoji_picker.vue
@@ -65,12 +65,16 @@
:title="emoji.displayText"
class="emoji-item"
@click.stop.prevent="onEmoji(emoji)"
- >
- {{ emoji.replacement }}
+ @mouseenter="setZoomEmoji($event, emoji)"
+ @mouseleave="setZoomEmoji($event, false)"
+ >
+
+ {{ emoji.replacement }}
+
+ >
@@ -95,6 +99,18 @@
/>
+