core: add hostContact to CRUserAcceptedGroupSent (to transition from pending connection to group in ui) (#1295)

This commit is contained in:
JRoberts 2022-11-04 19:46:27 +04:00 committed by GitHub
parent c78acfda33
commit 1bf3154488
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 5 additions and 4 deletions

View file

@ -554,6 +554,7 @@ export interface CRGroupMembers extends CR {
export interface CRUserAcceptedGroupSent extends CR { export interface CRUserAcceptedGroupSent extends CR {
type: "userAcceptedGroupSent" type: "userAcceptedGroupSent"
groupInfo: GroupInfo groupInfo: GroupInfo
hostContact?: Contact // included when joining group via group link
} }
export interface CRUserDeletedMember extends CR { export interface CRUserDeletedMember extends CR {

View file

@ -871,7 +871,7 @@ processChatCommand = \case
updateGroupMemberStatus db userId fromMember GSMemAccepted updateGroupMemberStatus db userId fromMember GSMemAccepted
updateGroupMemberStatus db userId membership GSMemAccepted updateGroupMemberStatus db userId membership GSMemAccepted
updateCIGroupInvitationStatus user updateCIGroupInvitationStatus user
pure $ CRUserAcceptedGroupSent g {membership = membership {memberStatus = GSMemAccepted}} pure $ CRUserAcceptedGroupSent g {membership = membership {memberStatus = GSMemAccepted}} Nothing
where where
updateCIGroupInvitationStatus user@User {userId} = do updateCIGroupInvitationStatus user@User {userId} = do
AChatItem _ _ cInfo ChatItem {content, meta = CIMeta {itemId}} <- withStore $ \db -> getChatItemByGroupId db user groupId 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 createMemberConnectionAsync db user hostId connIds
updateGroupMemberStatusById db userId hostId GSMemAccepted updateGroupMemberStatusById db userId hostId GSMemAccepted
updateGroupMemberStatus db userId membership GSMemAccepted updateGroupMemberStatus db userId membership GSMemAccepted
toView $ CRUserAcceptedGroupSent gInfo {membership = membership {memberStatus = GSMemAccepted}} toView $ CRUserAcceptedGroupSent gInfo {membership = membership {memberStatus = GSMemAccepted}} (Just ct)
else do else do
let content = CIRcvGroupInvitation (CIGroupInvitation {groupId, groupMemberId, localDisplayName, groupProfile, status = CIGISPending}) memRole let content = CIRcvGroupInvitation (CIGroupInvitation {groupId, groupMemberId, localDisplayName, groupProfile, status = CIGISPending}) memRole
ci <- saveRcvChatItem user (CDDirectRcv ct) msg msgMeta content Nothing ci <- saveRcvChatItem user (CDDirectRcv ct) msg msgMeta content Nothing

View file

@ -285,7 +285,7 @@ data ChatResponse
| CRUserContactLink {contactLink :: UserContactLink} | CRUserContactLink {contactLink :: UserContactLink}
| CRUserContactLinkUpdated {contactLink :: UserContactLink} | CRUserContactLinkUpdated {contactLink :: UserContactLink}
| CRContactRequestRejected {contactRequest :: UserContactRequest} | CRContactRequestRejected {contactRequest :: UserContactRequest}
| CRUserAcceptedGroupSent {groupInfo :: GroupInfo} | CRUserAcceptedGroupSent {groupInfo :: GroupInfo, hostContact :: Maybe Contact}
| CRUserDeletedMember {groupInfo :: GroupInfo, member :: GroupMember} | CRUserDeletedMember {groupInfo :: GroupInfo, member :: GroupMember}
| CRGroupsList {groups :: [GroupInfo]} | CRGroupsList {groups :: [GroupInfo]}
| CRSentGroupInvitation {groupInfo :: GroupInfo, contact :: Contact, member :: GroupMember} | CRSentGroupInvitation {groupInfo :: GroupInfo, contact :: Contact, member :: GroupMember}

View file

@ -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"] 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 CRUserContactLinkCreated cReq -> connReqContact_ "Your new chat address is created!" cReq
CRUserContactLinkDeleted -> viewUserContactLinkDeleted 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"] CRUserDeletedMember g m -> [ttyGroup' g <> ": you removed " <> ttyMember m <> " from the group"]
CRLeftMemberUser g -> [ttyGroup' g <> ": you left the group"] <> groupPreserved g CRLeftMemberUser g -> [ttyGroup' g <> ": you left the group"] <> groupPreserved g
CRGroupDeletedUser g -> [ttyGroup' g <> ": you deleted the group"] CRGroupDeletedUser g -> [ttyGroup' g <> ": you deleted the group"]