From 1bf3154488d67a700abfe5c3139900c4c43613cc Mon Sep 17 00:00:00 2001 From: JRoberts <8711996+jr-simplex@users.noreply.github.com> Date: Fri, 4 Nov 2022 19:46:27 +0400 Subject: [PATCH] core: add hostContact to CRUserAcceptedGroupSent (to transition from pending connection to group in ui) (#1295) --- packages/simplex-chat-client/typescript/src/response.ts | 1 + src/Simplex/Chat.hs | 4 ++-- src/Simplex/Chat/Controller.hs | 2 +- src/Simplex/Chat/View.hs | 2 +- 4 files changed, 5 insertions(+), 4 deletions(-) diff --git a/packages/simplex-chat-client/typescript/src/response.ts b/packages/simplex-chat-client/typescript/src/response.ts index 40b6e8d536..97df1731d6 100644 --- a/packages/simplex-chat-client/typescript/src/response.ts +++ b/packages/simplex-chat-client/typescript/src/response.ts @@ -554,6 +554,7 @@ export interface CRGroupMembers extends CR { export interface CRUserAcceptedGroupSent extends CR { type: "userAcceptedGroupSent" groupInfo: GroupInfo + hostContact?: Contact // included when joining group via group link } export interface CRUserDeletedMember extends CR { diff --git a/src/Simplex/Chat.hs b/src/Simplex/Chat.hs index ae4174d32d..30eff3d412 100644 --- a/src/Simplex/Chat.hs +++ b/src/Simplex/Chat.hs @@ -871,7 +871,7 @@ processChatCommand = \case updateGroupMemberStatus db userId fromMember GSMemAccepted updateGroupMemberStatus db userId membership GSMemAccepted updateCIGroupInvitationStatus user - pure $ CRUserAcceptedGroupSent g {membership = membership {memberStatus = GSMemAccepted}} + pure $ CRUserAcceptedGroupSent g {membership = membership {memberStatus = GSMemAccepted}} Nothing where updateCIGroupInvitationStatus user@User {userId} = do AChatItem _ _ cInfo ChatItem {content, meta = CIMeta {itemId}} <- withStore $ \db -> getChatItemByGroupId db user groupId @@ -2434,7 +2434,7 @@ processAgentMessage (Just user@User {userId}) corrId agentConnId agentMessage = createMemberConnectionAsync db user hostId connIds updateGroupMemberStatusById db userId hostId GSMemAccepted updateGroupMemberStatus db userId membership GSMemAccepted - toView $ CRUserAcceptedGroupSent gInfo {membership = membership {memberStatus = GSMemAccepted}} + toView $ CRUserAcceptedGroupSent gInfo {membership = membership {memberStatus = GSMemAccepted}} (Just ct) else do let content = CIRcvGroupInvitation (CIGroupInvitation {groupId, groupMemberId, localDisplayName, groupProfile, status = CIGISPending}) memRole ci <- saveRcvChatItem user (CDDirectRcv ct) msg msgMeta content Nothing diff --git a/src/Simplex/Chat/Controller.hs b/src/Simplex/Chat/Controller.hs index 1f592a79f6..27820bf905 100644 --- a/src/Simplex/Chat/Controller.hs +++ b/src/Simplex/Chat/Controller.hs @@ -285,7 +285,7 @@ data ChatResponse | CRUserContactLink {contactLink :: UserContactLink} | CRUserContactLinkUpdated {contactLink :: UserContactLink} | CRContactRequestRejected {contactRequest :: UserContactRequest} - | CRUserAcceptedGroupSent {groupInfo :: GroupInfo} + | CRUserAcceptedGroupSent {groupInfo :: GroupInfo, hostContact :: Maybe Contact} | CRUserDeletedMember {groupInfo :: GroupInfo, member :: GroupMember} | CRGroupsList {groups :: [GroupInfo]} | CRSentGroupInvitation {groupInfo :: GroupInfo, contact :: Contact, member :: GroupMember} diff --git a/src/Simplex/Chat/View.hs b/src/Simplex/Chat/View.hs index 7394ca4819..2e58a838fa 100644 --- a/src/Simplex/Chat/View.hs +++ b/src/Simplex/Chat/View.hs @@ -114,7 +114,7 @@ responseToView testView = \case CRContactRequestAlreadyAccepted c -> [ttyFullContact c <> ": sent you a duplicate contact request, but you are already connected, no action needed"] CRUserContactLinkCreated cReq -> connReqContact_ "Your new chat address is created!" cReq CRUserContactLinkDeleted -> viewUserContactLinkDeleted - CRUserAcceptedGroupSent _g -> [] -- [ttyGroup' g <> ": joining the group..."] + CRUserAcceptedGroupSent _g _ -> [] -- [ttyGroup' g <> ": joining the group..."] CRUserDeletedMember g m -> [ttyGroup' g <> ": you removed " <> ttyMember m <> " from the group"] CRLeftMemberUser g -> [ttyGroup' g <> ": you left the group"] <> groupPreserved g CRGroupDeletedUser g -> [ttyGroup' g <> ": you deleted the group"]