Skip to content

Commit d4008c5

Browse files
authored
Merge pull request #16628 from nextcloud/fix/noid/chat-relay-prereq
2 parents 16f56cd + 129c4fb commit d4008c5

File tree

3 files changed

+20
-6
lines changed

3 files changed

+20
-6
lines changed

src/composables/useGetMessages.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ import type {
1717

1818
import Axios from '@nextcloud/axios'
1919
import { subscribe, unsubscribe } from '@nextcloud/event-bus'
20+
import { t } from '@nextcloud/l10n'
2021
import { computed, inject, onBeforeUnmount, provide, ref, watch } from 'vue'
2122
import { START_LOCATION, useRoute } from 'vue-router'
2223
import { useStore } from 'vuex'
@@ -631,6 +632,13 @@ export function useGetMessagesProvider() {
631632
return
632633
}
633634

635+
// Patch for federated conversations: disable unsupported file shares
636+
if (conversation.value?.remoteServer && Object.keys(message.messageParameters ?? {}).some((key) => key.startsWith('file'))
637+
&& [MESSAGE.TYPE.COMMENT, MESSAGE.TYPE.VOICE_MESSAGE, MESSAGE.TYPE.RECORD_VIDEO, MESSAGE.TYPE.RECORD_AUDIO].includes(message.messageType)) {
638+
message.message = '*' + t('spreed', 'File shares are currently not supported in federated conversations') + '*'
639+
delete message.messageParameters.file
640+
}
641+
634642
chatStore.processChatBlocks(token, [message], { mergeBy: chatStore.getLastKnownId(token) })
635643
store.dispatch('processMessage', { token, message, fromRealtime: true })
636644
}

src/store/conversationsStore.js

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -537,10 +537,12 @@ const actions = {
537537
chatExtrasStore.removeParentIdToReply(token)
538538
const reactionsStore = useReactionsStore()
539539
reactionsStore.purgeReactionsStore(token)
540-
const sharedItemsStore = useSharedItemsStore()
541-
sharedItemsStore.purgeSharedItemsStore(token)
542-
context.dispatch('purgeMessagesStore', token)
543-
return response
540+
context.dispatch('processMessage', { token, message: response.data.ocs.data })
541+
context.dispatch('updateLastReadMessage', {
542+
token,
543+
id: response.data.ocs.data.id,
544+
updateVisually: true,
545+
})
544546
} catch (error) {
545547
console.error(t('spreed', 'Error while clearing conversation history'), error)
546548
}
@@ -820,7 +822,6 @@ const actions = {
820822
if ((lastMessage.actorType !== ATTENDEE.ACTOR_TYPE.BOTS
821823
|| lastMessage.actorId === ATTENDEE.CHANGELOG_BOT_ID)
822824
&& lastMessage.systemMessage !== 'reaction'
823-
&& lastMessage.systemMessage !== 'poll_voted'
824825
&& lastMessage.systemMessage !== 'reaction_deleted'
825826
&& lastMessage.systemMessage !== 'reaction_revoked'
826827
&& lastMessage.systemMessage !== 'message_deleted'

src/store/messagesStore.js

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -470,6 +470,11 @@ const actions = {
470470
token,
471471
pollId: message.messageParameters.poll.id,
472472
})
473+
474+
const conversation = context.getters.conversation(token)
475+
if (conversation?.lastMessage?.id && message.id > conversation.lastMessage.id) {
476+
context.dispatch('updateConversationLastMessage', { token, lastMessage: message })
477+
}
473478
// Quit processing
474479
context.commit('addMessage', { token, message })
475480
return
@@ -595,7 +600,7 @@ const actions = {
595600
if (message.systemMessage === MESSAGE.SYSTEM_TYPE.HISTORY_CLEARED) {
596601
sharedItemsStore.purgeSharedItemsStore(token, message.id)
597602
chatExtrasStore.clearThreads(token, message.id)
598-
context.commit('clearMessagesHistory', {
603+
context.dispatch('clearMessagesHistory', {
599604
token,
600605
id: message.id,
601606
})

0 commit comments

Comments
 (0)