You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
session-desktop/ts/session/utils/Groups.ts

34 lines
904 B
TypeScript

5 years ago
import _ from 'lodash';
import { PrimaryPubKey } from '../types';
import { MultiDeviceProtocol } from '../protocols';
5 years ago
5 years ago
export async function getGroupMembers(
groupId: string
): Promise<Array<PrimaryPubKey>> {
const groupConversation = window.ConversationController.get(groupId);
5 years ago
const groupMembers = groupConversation
? groupConversation.attributes.members
: undefined;
5 years ago
if (!groupMembers) {
return [];
}
5 years ago
const promises = (groupMembers as Array<string>).map(async (member: string) =>
MultiDeviceProtocol.getPrimaryDevice(member)
);
const primaryDevices = await Promise.all(promises);
return _.uniqWith(primaryDevices, (a, b) => a.isEqual(b));
5 years ago
}
5 years ago
export function isMediumGroup(groupId: string): boolean {
const conversation = window.ConversationController.get(groupId);
5 years ago
if (!conversation) {
return false;
}
return Boolean(conversation.isMediumGroup());
}