diff --git a/ts/session/sending/MessageQueue.ts b/ts/session/sending/MessageQueue.ts index 9980195a2..d66d8de01 100644 --- a/ts/session/sending/MessageQueue.ts +++ b/ts/session/sending/MessageQueue.ts @@ -14,7 +14,7 @@ import { SessionRequestMessage, } from '../messages/outgoing'; import { PendingMessageCache } from './PendingMessageCache'; -import { JobQueue, SyncMessageUtils, TypedEventEmitter } from '../utils'; +import { JobQueue, SyncMessageUtils, TypedEventEmitter, GroupUtils } from '../utils'; import { PubKey } from '../types'; import { MessageSender } from '.'; import { SessionProtocol } from '../protocols'; @@ -130,9 +130,7 @@ export class MessageQueue implements MessageQueueInterface { public async processPending(device: PubKey) { const messages = this.pendingMessageCache.getForDevice(device); - // TODO: Simpify the isMediumGroup check to not rely on ANY window objects - // const isMediumGroup = messages.some(m => m instanceof MediumGroupMessage); - const isMediumGroup = false; + const isMediumGroup = GroupUtils.isMediumGroup(device); const hasSession = SessionProtocol.hasSession(device); if (!isMediumGroup && !hasSession) { diff --git a/ts/session/utils/Groups.ts b/ts/session/utils/Groups.ts new file mode 100644 index 000000000..af9ab9031 --- /dev/null +++ b/ts/session/utils/Groups.ts @@ -0,0 +1,24 @@ +import { ConversationController } from '../../window'; +import { PubKey } from '../types'; + + +export async function getGroupMembers(groupId: PubKey): Promise> { + const groupConversation = ConversationController.get(groupId.key); + const groupMembers = groupConversation.attributes.members; + + if (!groupMembers) { + return []; + } + + return groupMembers.map((member: string) => new PubKey(member)); +} + +export function isMediumGroup(groupId: PubKey): boolean { + const conversation = ConversationController.get(groupId.key); + + if (!conversation) { + return false; + } + + return Boolean(conversation.isMediumGroup()); +} diff --git a/ts/session/utils/index.ts b/ts/session/utils/index.ts index b5f9dd93e..aa99cb92f 100644 --- a/ts/session/utils/index.ts +++ b/ts/session/utils/index.ts @@ -1,7 +1,8 @@ import * as MessageUtils from './Messages'; +import * as GroupUtils from './Groups'; import * as SyncMessageUtils from './SyncMessageUtils'; export * from './TypedEmitter'; export * from './JobQueue'; -export { MessageUtils, SyncMessageUtils }; +export { MessageUtils, SyncMessageUtils, GroupUtils };