diff --git a/app/javascript/dashboard/components/widgets/conversation/MessagesView.vue b/app/javascript/dashboard/components/widgets/conversation/MessagesView.vue index 5288a648c..eba49d860 100644 --- a/app/javascript/dashboard/components/widgets/conversation/MessagesView.vue +++ b/app/javascript/dashboard/components/widgets/conversation/MessagesView.vue @@ -378,12 +378,13 @@ export default { bus.$off(BUS_EVENTS.SCROLL_TO_MESSAGE, this.onScrollToMessage); }, async onScrollToMessage({ messageId }) { - // TODO: check if the message is already loaded - await this.$store.dispatch('setActiveChat', { - data: this.currentChat, - after: messageId, - force: true, - }); + if (messageId) { + await this.$store.dispatch('setActiveChat', { + data: this.currentChat, + after: messageId, + force: true, + }); + } this.$nextTick(() => { const messageElement = document.getElementById('message' + messageId); diff --git a/app/javascript/dashboard/routes/dashboard/conversation/ConversationView.vue b/app/javascript/dashboard/routes/dashboard/conversation/ConversationView.vue index 32d2f458e..cede92c92 100644 --- a/app/javascript/dashboard/routes/dashboard/conversation/ConversationView.vue +++ b/app/javascript/dashboard/routes/dashboard/conversation/ConversationView.vue @@ -163,14 +163,14 @@ export default { return; } const { messageId } = this.$route.query; - if (messageId) { - // this will automatically set the active chat - bus.$emit(BUS_EVENTS.SCROLL_TO_MESSAGE, { messageId }); - } else { - this.$store.dispatch('setActiveChat', { + this.$store + .dispatch('setActiveChat', { data: selectedConversation, + after: messageId, + }) + .then(() => { + bus.$emit(BUS_EVENTS.SCROLL_TO_MESSAGE, { messageId }); }); - } } else { this.$store.dispatch('clearSelectedState'); }