diff --git a/client/src/components/ConversationList.tsx b/client/src/components/ConversationList.tsx index a6322cb38d81bcf6a811a43a379f00030e32bb4f..0cbcbf0b2b75f831de1c00db29105b9ac9a2b733 100644 --- a/client/src/components/ConversationList.tsx +++ b/client/src/components/ConversationList.tsx @@ -116,14 +116,11 @@ const SummariesTabPanel = (props: TabPanelProps) => { const refreshConversationsSummaries = useRefreshConversationsSummaries() useEffect(() => { - function conversationMessageListener() { - refreshConversationsSummaries() - } - - websocket.bind(WebSocketMessageType.ConversationMessage, conversationMessageListener) - + websocket.bind(WebSocketMessageType.ConversationMessage, refreshConversationsSummaries) + websocket.bind(WebSocketMessageType.ConversationReady, refreshConversationsSummaries) return () => { - websocket.unbind(WebSocketMessageType.ConversationMessage, conversationMessageListener) + websocket.unbind(WebSocketMessageType.ConversationMessage, refreshConversationsSummaries) + websocket.unbind(WebSocketMessageType.ConversationReady, refreshConversationsSummaries) } }, [websocket, refreshConversationsSummaries]) diff --git a/common/src/enums/websocket-message-type.ts b/common/src/enums/websocket-message-type.ts index 6f791dc5f550826997e2378696bf69773b023dac..b0665e5f61cba6eb777b8cb3feda320374888fb8 100644 --- a/common/src/enums/websocket-message-type.ts +++ b/common/src/enums/websocket-message-type.ts @@ -30,6 +30,7 @@ export enum WebSocketMessageType { LoadMoreMessages = 'load-more-messages', LoadSwarmUntil = 'load-swarm-until', KnownDevicesChanged = 'known-devices-changed', + ConversationReady = 'conversation-ready', // calls (in the order they should be sent) sendCallInvite = 'sendCallInvite', diff --git a/common/src/interfaces/websocket-interfaces.ts b/common/src/interfaces/websocket-interfaces.ts index 11efdfd23047b85bafb2102e27cd437c386ba5be..99ab4e3aa0c42cc5649e893ff8035a6f35da18f8 100644 --- a/common/src/interfaces/websocket-interfaces.ts +++ b/common/src/interfaces/websocket-interfaces.ts @@ -47,6 +47,10 @@ export interface ConversationView { conversationId: string } +export interface ConversationReady { + conversationId: string +} + export interface AccountMessageStatus { conversationId: string peer: string diff --git a/common/src/interfaces/websocket-message.ts b/common/src/interfaces/websocket-message.ts index 8b6214ff5cfcd2b6f1689b07b001b40761f8e148..62d1a0b8d8f5cd11d01d29ca4adcc2e795e0277e 100644 --- a/common/src/interfaces/websocket-message.ts +++ b/common/src/interfaces/websocket-message.ts @@ -25,6 +25,7 @@ import { ComposingStatus, ConversationMemberEvent, ConversationMessage, + ConversationReady, ConversationView, IAccountDetails, IKnownDevicesChanged, @@ -54,6 +55,7 @@ export interface WebSocketMessageTable { [WebSocketMessageType.LoadMoreMessages]: LoadMoreMessages [WebSocketMessageType.LoadSwarmUntil]: LoadSwarmUntil [WebSocketMessageType.KnownDevicesChanged]: IKnownDevicesChanged + [WebSocketMessageType.ConversationReady]: ConversationReady // calls (in the order they should be sent) [WebSocketMessageType.sendCallInvite]: CallInvite diff --git a/server/src/jamid/jamid.ts b/server/src/jamid/jamid.ts index 1832e8e60fcdce74a302408f3124177b373c4bd6..1b75d7b8f99a87d82780b6081d7609bac4ff64cd 100644 --- a/server/src/jamid/jamid.ts +++ b/server/src/jamid/jamid.ts @@ -856,6 +856,9 @@ export class Jamid { this.events.onConversationReady.subscribe((signal) => { log.debug('Received ConversationReady:', JSON.stringify(signal)) + this.webSocketServer.send(signal.accountId, WebSocketMessageType.ConversationReady, { + conversationId: signal.conversationId, + }) }) this.events.onConversationRemoved.subscribe((signal) => {