mirror of
https://github.com/simplex-chat/simplex-chat.git
synced 2026-10-22 21:52:28 +00:00
core, ui: invite member of one group to another group (#7682)
* rfc: invite member of one group to another group * update * update * implement * version * update * do not show error if contact was removed when joining group --------- Co-authored-by: Evgeny @ SimpleX Chat <259188159+evgeny-simplex@users.noreply.github.com>
This commit is contained in:
1 parent
1053e9fb5c
commit
07c363849b
41 files changed
+1571
-52
No files matched your search
@@ -1191,6 +1191,7 @@ enum ChatEvent: Decodable, ChatAPIResult {
|
||||
// group events
|
||||
case groupChatItemsDeleted(user: UserRef, groupInfo: GroupInfo, chatItemIDs: Set<Int64>, byUser: Bool, member_: GroupMember?)
|
||||
case receivedGroupInvitation(user: UserRef, groupInfo: GroupInfo, contact: Contact, memberRole: GroupMemberRole)
|
||||
case receivedGroupInvitationViaGroup(user: UserRef, groupInfo: GroupInfo, viaGroupInfo: GroupInfo, viaMember: GroupMember, memberRole: GroupMemberRole)
|
||||
case userAcceptedGroupSent(user: UserRef, groupInfo: GroupInfo, hostContact: Contact?)
|
||||
case groupLinkConnecting(user: UserRef, groupInfo: GroupInfo, hostMember: GroupMember)
|
||||
case businessLinkConnecting(user: UserRef, groupInfo: GroupInfo, hostMember: GroupMember, fromContact: Contact)
|
||||
@@ -1272,6 +1273,7 @@ enum ChatEvent: Decodable, ChatAPIResult {
|
||||
case .chatItemsDeleted: "chatItemsDeleted"
|
||||
case .groupChatItemsDeleted: "groupChatItemsDeleted"
|
||||
case .receivedGroupInvitation: "receivedGroupInvitation"
|
||||
case .receivedGroupInvitationViaGroup: "receivedGroupInvitationViaGroup"
|
||||
case .userAcceptedGroupSent: "userAcceptedGroupSent"
|
||||
case .groupLinkConnecting: "groupLinkConnecting"
|
||||
case .businessLinkConnecting: "businessLinkConnecting"
|
||||
@@ -1356,6 +1358,7 @@ enum ChatEvent: Decodable, ChatAPIResult {
|
||||
case let .groupChatItemsDeleted(u, gInfo, chatItemIDs, byUser, member_):
|
||||
return withUser(u, "chatItemIDs: \(String(describing: chatItemIDs))\ngroupInfo: \(String(describing: gInfo))\nbyUser: \(byUser)\nmember_: \(String(describing: member_))")
|
||||
case let .receivedGroupInvitation(u, groupInfo, contact, memberRole): return withUser(u, "groupInfo: \(groupInfo)\ncontact: \(contact)\nmemberRole: \(memberRole)")
|
||||
case let .receivedGroupInvitationViaGroup(u, groupInfo, viaGroupInfo, viaMember, memberRole): return withUser(u, "groupInfo: \(groupInfo)\nviaGroupInfo: \(viaGroupInfo)\nviaMember: \(viaMember)\nmemberRole: \(memberRole)")
|
||||
case let .userAcceptedGroupSent(u, groupInfo, hostContact): return withUser(u, "groupInfo: \(groupInfo)\nhostContact: \(String(describing: hostContact))")
|
||||
case let .groupLinkConnecting(u, groupInfo, hostMember): return withUser(u, "groupInfo: \(groupInfo)\nhostMember: \(String(describing: hostMember))")
|
||||
case let .businessLinkConnecting(u, groupInfo, hostMember, fromContact): return withUser(u, "groupInfo: \(groupInfo)\nhostMember: \(String(describing: hostMember))\nfromContact: \(String(describing: fromContact))")
|
||||
|
||||
@@ -2705,7 +2705,8 @@ func processReceivedMsg(_ res: ChatEvent) async {
|
||||
}
|
||||
case let .groupChatItemsDeleted(user, groupInfo, chatItemIDs, _, member_):
|
||||
await groupChatItemsDeleted(user, groupInfo, chatItemIDs, member_)
|
||||
case let .receivedGroupInvitation(user, groupInfo, _, _):
|
||||
case let .receivedGroupInvitation(user, groupInfo, _, _),
|
||||
let .receivedGroupInvitationViaGroup(user, groupInfo, _, _, _):
|
||||
if active(user) {
|
||||
await MainActor.run {
|
||||
m.updateGroup(groupInfo) // update so that repeat group invitations are not duplicated
|
||||
|
||||
Reference in new issue
Block a user