core: Fix member role that wasn't applied to a member object (#1190)

This commit is contained in:
Stanislav Dmitrenko
2022-10-08 21:49:42 +03:00
committed by GitHub
parent 54705c07bd
commit cf001054c2
3 changed files with 9 additions and 6 deletions

View File

@@ -964,6 +964,10 @@ open class ChatController(var ctrl: ChatCtrl?, val ntfManager: NtfManager, val a
chatModel.upsertGroupMember(r.groupInfo, r.deletedMember)
is CR.LeftMember ->
chatModel.upsertGroupMember(r.groupInfo, r.member)
is CR.MemberRole ->
chatModel.upsertGroupMember(r.groupInfo, r.member)
is CR.MemberRoleUser ->
chatModel.upsertGroupMember(r.groupInfo, r.member)
is CR.GroupDeleted -> // TODO update user member
chatModel.updateGroup(r.groupInfo)
is CR.UserJoinedGroup ->

View File

@@ -223,8 +223,8 @@ fun AddMembersButton(tint: Color = MaterialTheme.colors.primary) {
fun MembersList(members: List<GroupMember>, showMemberInfo: (GroupMember) -> Unit) {
Column {
members.forEachIndexed { index, member ->
SectionItemView(minHeight = 50.dp) {
MemberRow(member, showMemberInfo)
SectionItemView({ showMemberInfo(member) }, minHeight = 50.dp) {
MemberRow(member)
}
if (index < members.lastIndex) {
SectionDivider()
@@ -234,10 +234,9 @@ fun MembersList(members: List<GroupMember>, showMemberInfo: (GroupMember) -> Uni
}
@Composable
fun MemberRow(member: GroupMember, showMemberInfo: ((GroupMember) -> Unit)? = null, user: Boolean = false) {
val modifier = if (showMemberInfo != null) Modifier.clickable { showMemberInfo(member) } else Modifier
fun MemberRow(member: GroupMember, user: Boolean = false) {
Row(
modifier.fillMaxSize(),
Modifier.fillMaxWidth(),
horizontalArrangement = Arrangement.SpaceBetween,
verticalAlignment = Alignment.CenterVertically
) {

View File

@@ -2395,7 +2395,7 @@ processAgentMessage (Just user@User {userId, profile}) corrId agentConnId agentM
withStore' $ \db -> updateGroupMemberRole db user member memRole
ci <- saveRcvChatItem user (CDGroupRcv gInfo m) msg msgMeta (CIRcvGroupEvent gEvent) Nothing
groupMsgToView gInfo m ci msgMeta
toView CRMemberRole {groupInfo = gInfo', byMember = m, member, fromRole, toRole = memRole}
toView CRMemberRole {groupInfo = gInfo', byMember = m, member = member {memberRole = memRole}, fromRole, toRole = memRole}
checkHostRole :: GroupMember -> GroupMemberRole -> m ()
checkHostRole GroupMember {memberRole, localDisplayName} memRole =