Skip to content

Commit 9b46ac4

Browse files
committed
(fix) emojis reactions and shortcuts
1 parent c360acb commit 9b46ac4

File tree

5 files changed

+13
-26
lines changed

5 files changed

+13
-26
lines changed

demo/src/ChatContainer.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -638,7 +638,7 @@ export default {
638638
await messagesRef(roomId)
639639
.doc(messageId)
640640
.update({
641-
[`reactions.${reaction.name}`]: dbAction
641+
[`reactions.${reaction.unicode}`]: dbAction
642642
})
643643
},
644644

src/components/EmojiPicker/EmojiPicker.vue

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -65,8 +65,7 @@ export default {
6565
.querySelector('emoji-picker')
6666
.addEventListener('emoji-click', ({ detail }) => {
6767
this.$emit('add-emoji', {
68-
icon: detail.unicode,
69-
name: detail.annotation
68+
unicode: detail.unicode
7069
})
7170
})
7271
}, 0)

src/lib/Message/Message.vue

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -188,7 +188,7 @@
188188
@update-options-opened="optionsOpened = $event"
189189
@update-emoji-opened="emojiOpened = $event"
190190
@message-action-handler="messageActionHandler"
191-
@send-message-reaction="sendMessageReaction($event)"
191+
@send-message-reaction="sendMessageReaction"
192192
>
193193
<template v-for="(i, name) in $scopedSlots" #[name]="data">
194194
<slot :name="name" v-bind="data" />
@@ -199,8 +199,7 @@
199199
<message-reactions
200200
:current-user-id="currentUserId"
201201
:message="message"
202-
:emojis-list="emojisList"
203-
@send-message-reaction="sendMessageReaction($event)"
202+
@send-message-reaction="sendMessageReaction"
204203
/>
205204
</div>
206205
</slot>
@@ -252,7 +251,6 @@ export default {
252251
showNewMessagesDivider: { type: Boolean, required: true },
253252
textFormatting: { type: Boolean, required: true },
254253
linkOptions: { type: Object, required: true },
255-
emojisList: { type: Object, required: true },
256254
hideOptions: { type: Boolean, required: true }
257255
},
258256

src/lib/Message/MessageReactions/MessageReactions.vue

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,9 @@
1111
:style="{
1212
float: message.senderId === currentUserId ? 'right' : 'left'
1313
}"
14-
@click="sendMessageReaction({ name: key }, reaction)"
14+
@click="sendMessageReaction({ unicode: key }, reaction)"
1515
>
16-
{{ getEmojiByName(key) }}<span>{{ reaction.length }}</span>
16+
{{ key }}<span>{{ reaction.length }}</span>
1717
</button>
1818
</transition-group>
1919
</template>
@@ -24,16 +24,12 @@ export default {
2424
2525
props: {
2626
currentUserId: { type: [String, Number], required: true },
27-
message: { type: Object, required: true },
28-
emojisList: { type: Object, required: true }
27+
message: { type: Object, required: true }
2928
},
3029
3130
emits: ['send-message-reaction'],
3231
3332
methods: {
34-
getEmojiByName(emojiName) {
35-
return this.emojisList[emojiName]
36-
},
3733
sendMessageReaction(emoji, reaction) {
3834
this.$emit('send-message-reaction', { emoji, reaction })
3935
}

src/lib/Room/Room.vue

Lines changed: 6 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,6 @@
8888
:show-new-messages-divider="showNewMessagesDivider"
8989
:text-formatting="textFormatting"
9090
:link-options="linkOptions"
91-
:emojis-list="emojisList"
9291
:hide-options="hideOptions"
9392
@message-added="onMessageAdded"
9493
@message-action-handler="messageActionHandler"
@@ -332,6 +331,7 @@
332331
<script>
333332
import InfiniteLoading from 'vue-infinite-loading'
334333
import vClickOutside from 'v-click-outside'
334+
import { Database } from 'emoji-picker-element'
335335
336336
import Loader from '../../components/Loader/Loader'
337337
import SvgIcon from '../../components/SvgIcon/SvgIcon'
@@ -446,18 +446,14 @@ export default {
446446
selectedUsersTag: [],
447447
textareaCursorPosition: null,
448448
cursorRangePosition: null,
449+
emojisDB: new Database(),
449450
recorder: this.initRecorder(),
450451
isRecording: false,
451452
format: 'mp3'
452453
}
453454
},
454455
455456
computed: {
456-
emojisList() {
457-
const emojis = {}
458-
const emojisTable = Object.keys(emojis).map(key => emojis[key])
459-
return Object.assign({}, ...emojisTable)
460-
},
461457
room() {
462458
return this.rooms.find(room => room.roomId === this.roomId) || {}
463459
},
@@ -734,13 +730,11 @@ export default {
734730
735731
return { position, endPosition }
736732
},
737-
updateEmojis(query) {
733+
async updateEmojis(query) {
738734
if (!query) return
739735
740-
const emojisListKeys = Object.keys(this.emojisList)
741-
const matchingKeys = emojisListKeys.filter(key => key.startsWith(query))
742-
743-
this.filteredEmojis = matchingKeys.map(key => this.emojisList[key])
736+
const emojis = await this.emojisDB.getEmojiBySearchQuery(query)
737+
this.filteredEmojis = emojis.map(emoji => emoji.unicode)
744738
},
745739
selectEmoji(emoji) {
746740
const { position, endPosition } = this.getCharPosition(':')
@@ -982,7 +976,7 @@ export default {
982976
el.style.height = el.scrollHeight - padding * 2 + 'px'
983977
},
984978
addEmoji(emoji) {
985-
this.message += emoji.icon
979+
this.message += emoji.unicode
986980
this.focusTextarea(true)
987981
},
988982
launchFilePicker() {

0 commit comments

Comments
 (0)