Group V2 invite links: in-conversation messages

This commit is contained in:
Scott Nonnenberg 2020-12-18 11:27:43 -08:00
parent 8e7379a591
commit 272e6cc614
10 changed files with 1775 additions and 206 deletions

13
ts/model-types.d.ts vendored
View file

@ -230,6 +230,7 @@ export type ConversationAttributesType = {
accessControl?: {
attributes: AccessRequiredEnum;
members: AccessRequiredEnum;
addFromInviteLink: AccessRequiredEnum;
};
avatar?: {
url: string;
@ -239,6 +240,8 @@ export type ConversationAttributesType = {
expireTimer?: number;
membersV2?: Array<GroupV2MemberType>;
pendingMembersV2?: Array<GroupV2PendingMemberType>;
pendingAdminApprovalV2?: Array<GroupV2PendingAdminApprovalType>;
groupInviteLinkPassword?: string;
previousGroupV1Id?: string;
previousGroupV1Members?: Array<string>;
};
@ -247,6 +250,12 @@ export type GroupV2MemberType = {
conversationId: string;
role: MemberRoleEnum;
joinedAtVersion: number;
// Note that these are temporary flags, generated by applyGroupChange, but eliminated
// by applyGroupState. They are used to make our diff-generation more intelligent but
// not after that.
joinedFromLink?: boolean;
approvedByAdmin?: boolean;
};
export type GroupV2PendingMemberType = {
addedByUserId?: string;
@ -254,6 +263,10 @@ export type GroupV2PendingMemberType = {
timestamp: number;
role: MemberRoleEnum;
};
export type GroupV2PendingAdminApprovalType = {
conversationId: string;
timestamp: number;
};
export type VerificationOptions = {
key?: null | ArrayBuffer;