export type MessageGroups = {
[id: string]: MessageGroupModel
};
export interface MessageGroupModel {
groupId: string;
memberIds: string[];
messages: ChatMessageModel[];
}
Usage is like this:
async handleFullMessageGroupUpdate(newMessageGroup: MessageGroupModel) {
let messageGroups: MessageGroups = await this.storage.get(StorageKeys.MESSAGES);
if (!messageGroups) {
messageGroups = {}
}
if (!messageGroups[newMessageGroup.groupId]) {
messageGroups[newMessageGroup.groupId] = newMessageGroup;
} else {
messageGroups[newMessageGroup.groupId].memberIds = newMessageGroup.memberIds;
messageGroups[newMessageGroup.groupId].memberProfiles = newMessageGroup.memberProfiles;
messageGroups = this.mergeNewGroupMessages(messageGroups,
newMessageGroup.messages, newMessageGroup.groupId, newMessageGroup.lastMessageUpdateTime);
}
}
export type MessageGroups
declaration is not clear to me. can't I use interface
here instead of type
?