From 71bcfc28488b60c1ab3042766da1603d81f27fa0 Mon Sep 17 00:00:00 2001 From: spaced4ndy <8711996+spaced4ndy@users.noreply.github.com> Date: Mon, 12 Feb 2024 17:33:53 +0400 Subject: [PATCH] ui: uncomment block for all functionality (#3799) --- .../Views/Chat/Group/GroupChatInfoView.swift | 48 ++++----- .../Chat/Group/GroupMemberInfoView.swift | 21 +--- .../views/chat/group/GroupChatInfoView.kt | 98 +++++++------------ .../views/chat/group/GroupMemberInfoView.kt | 22 +---- 4 files changed, 65 insertions(+), 124 deletions(-) diff --git a/apps/ios/Shared/Views/Chat/Group/GroupChatInfoView.swift b/apps/ios/Shared/Views/Chat/Group/GroupChatInfoView.swift index dbea6a17e0..88b36077b4 100644 --- a/apps/ios/Shared/Views/Chat/Group/GroupChatInfoView.swift +++ b/apps/ios/Shared/Views/Chat/Group/GroupChatInfoView.swift @@ -234,39 +234,29 @@ struct GroupChatInfoView: View { Spacer() memberInfo(member) } - - // revert from this: + if user { v - } else if member.canBeRemoved(groupInfo: groupInfo) { - removeSwipe(member, blockSwipe(member, v)) + } else if groupInfo.membership.memberRole >= .admin { + // TODO if there are more actions, refactor with lists of swipeActions + let canBlockForAll = member.canBlockForAll(groupInfo: groupInfo) + let canRemove = member.canBeRemoved(groupInfo: groupInfo) + if canBlockForAll && canRemove { + removeSwipe(member, blockForAllSwipe(member, v)) + } else if canBlockForAll { + blockForAllSwipe(member, v) + } else if canRemove { + removeSwipe(member, v) + } else { + v + } } else { - blockSwipe(member, v) + if !member.blockedByAdmin { + blockSwipe(member, v) + } else { + v + } } - // revert to this: vvv -// if user { -// v -// } else if groupInfo.membership.memberRole >= .admin { -// // TODO if there are more actions, refactor with lists of swipeActions -// let canBlockForAll = member.canBlockForAll(groupInfo: groupInfo) -// let canRemove = member.canBeRemoved(groupInfo: groupInfo) -// if canBlockForAll && canRemove { -// removeSwipe(member, blockForAllSwipe(member, v)) -// } else if canBlockForAll { -// blockForAllSwipe(member, v) -// } else if canRemove { -// removeSwipe(member, v) -// } else { -// v -// } -// } else { -// if !member.blockedByAdmin { -// blockSwipe(member, v) -// } else { -// v -// } -// } - // ^^^ } @ViewBuilder private func memberInfo(_ member: GroupMember) -> some View { diff --git a/apps/ios/Shared/Views/Chat/Group/GroupMemberInfoView.swift b/apps/ios/Shared/Views/Chat/Group/GroupMemberInfoView.swift index d2b0f77393..999617dde7 100644 --- a/apps/ios/Shared/Views/Chat/Group/GroupMemberInfoView.swift +++ b/apps/ios/Shared/Views/Chat/Group/GroupMemberInfoView.swift @@ -168,24 +168,11 @@ struct GroupMemberInfoView: View { } } - // revert from this: - Section { - if member.memberSettings.showMessages { - blockMemberButton(member) - } else { - unblockMemberButton(member) - } - if member.canBeRemoved(groupInfo: groupInfo) { - removeMemberButton(member) - } + if groupInfo.membership.memberRole >= .admin { + adminDestructiveSection(member) + } else { + nonAdminBlockSection(member) } - // revert to this: vvv -// if groupInfo.membership.memberRole >= .admin { -// adminDestructiveSection(member) -// } else { -// nonAdminBlockSection(member) -// } - // ^^^ if developerTools { Section("For console") { diff --git a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/chat/group/GroupChatInfoView.kt b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/chat/group/GroupChatInfoView.kt index d602d78d89..aed47a7675 100644 --- a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/chat/group/GroupChatInfoView.kt +++ b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/chat/group/GroupChatInfoView.kt @@ -424,69 +424,47 @@ private fun MemberVerifiedShield() { @Composable private fun DropDownMenuForMember(rhId: Long?, member: GroupMember, groupInfo: GroupInfo, showMenu: MutableState) { - // revert from this: - DefaultDropdownMenu(showMenu) { - if (member.canBeRemoved(groupInfo)) { - ItemAction(stringResource(MR.strings.remove_member_button), painterResource(MR.images.ic_delete), color = MaterialTheme.colors.error, onClick = { - removeMemberAlert(rhId, groupInfo, member) - showMenu.value = false - }) + if (groupInfo.membership.memberRole >= GroupMemberRole.Admin) { + val canBlockForAll = member.canBlockForAll(groupInfo) + val canRemove = member.canBeRemoved(groupInfo) + if (canBlockForAll || canRemove) { + DefaultDropdownMenu(showMenu) { + if (canBlockForAll) { + if (member.blockedByAdmin) { + ItemAction(stringResource(MR.strings.unblock_for_all), painterResource(MR.images.ic_do_not_touch), onClick = { + unblockForAllAlert(rhId, groupInfo, member) + showMenu.value = false + }) + } else { + ItemAction(stringResource(MR.strings.block_for_all), painterResource(MR.images.ic_back_hand), color = MaterialTheme.colors.error, onClick = { + blockForAllAlert(rhId, groupInfo, member) + showMenu.value = false + }) + } + } + if (canRemove) { + ItemAction(stringResource(MR.strings.remove_member_button), painterResource(MR.images.ic_delete), color = MaterialTheme.colors.error, onClick = { + removeMemberAlert(rhId, groupInfo, member) + showMenu.value = false + }) + } + } } - if (member.memberSettings.showMessages) { - ItemAction(stringResource(MR.strings.block_member_button), painterResource(MR.images.ic_back_hand), color = MaterialTheme.colors.error, onClick = { - blockMemberAlert(rhId, groupInfo, member) - showMenu.value = false - }) - } else { - ItemAction(stringResource(MR.strings.unblock_member_button), painterResource(MR.images.ic_do_not_touch), onClick = { - unblockMemberAlert(rhId, groupInfo, member) - showMenu.value = false - }) + } else if (!member.blockedByAdmin) { + DefaultDropdownMenu(showMenu) { + if (member.memberSettings.showMessages) { + ItemAction(stringResource(MR.strings.block_member_button), painterResource(MR.images.ic_back_hand), color = MaterialTheme.colors.error, onClick = { + blockMemberAlert(rhId, groupInfo, member) + showMenu.value = false + }) + } else { + ItemAction(stringResource(MR.strings.unblock_member_button), painterResource(MR.images.ic_do_not_touch), onClick = { + unblockMemberAlert(rhId, groupInfo, member) + showMenu.value = false + }) + } } } - // revert to this: vvv -// if (groupInfo.membership.memberRole >= GroupMemberRole.Admin) { -// val canBlockForAll = member.canBlockForAll(groupInfo) -// val canRemove = member.canBeRemoved(groupInfo) -// if (canBlockForAll || canRemove) { -// DefaultDropdownMenu(showMenu) { -// if (canBlockForAll) { -// if (member.blockedByAdmin) { -// ItemAction(stringResource(MR.strings.unblock_for_all), painterResource(MR.images.ic_do_not_touch), onClick = { -// unblockForAllAlert(rhId, groupInfo, member) -// showMenu.value = false -// }) -// } else { -// ItemAction(stringResource(MR.strings.block_for_all), painterResource(MR.images.ic_back_hand), color = MaterialTheme.colors.error, onClick = { -// blockForAllAlert(rhId, groupInfo, member) -// showMenu.value = false -// }) -// } -// } -// if (canRemove) { -// ItemAction(stringResource(MR.strings.remove_member_button), painterResource(MR.images.ic_delete), color = MaterialTheme.colors.error, onClick = { -// removeMemberAlert(rhId, groupInfo, member) -// showMenu.value = false -// }) -// } -// } -// } -// } else if (!member.blockedByAdmin) { -// DefaultDropdownMenu(showMenu) { -// if (member.memberSettings.showMessages) { -// ItemAction(stringResource(MR.strings.block_member_button), painterResource(MR.images.ic_back_hand), color = MaterialTheme.colors.error, onClick = { -// blockMemberAlert(rhId, groupInfo, member) -// showMenu.value = false -// }) -// } else { -// ItemAction(stringResource(MR.strings.unblock_member_button), painterResource(MR.images.ic_do_not_touch), onClick = { -// unblockMemberAlert(rhId, groupInfo, member) -// showMenu.value = false -// }) -// } -// } -// } - // ^^^ } @Composable diff --git a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/chat/group/GroupMemberInfoView.kt b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/chat/group/GroupMemberInfoView.kt index 6759d54749..b1034b914b 100644 --- a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/chat/group/GroupMemberInfoView.kt +++ b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/chat/group/GroupMemberInfoView.kt @@ -387,25 +387,11 @@ fun GroupMemberInfoLayout( } } - // revert from this: - SectionDividerSpaced(maxBottomPadding = false) - SectionView { - if (member.memberSettings.showMessages) { - BlockMemberButton(blockMember) - } else { - UnblockMemberButton(unblockMember) - } - if (member.canBeRemoved(groupInfo)) { - RemoveMemberButton(removeMember) - } + if (groupInfo.membership.memberRole >= GroupMemberRole.Admin) { + AdminDestructiveSection() + } else { + NonAdminBlockSection() } - // revert to this: vvv -// if (groupInfo.membership.memberRole >= GroupMemberRole.Admin) { -// AdminDestructiveSection() -// } else { -// NonAdminBlockSection() -// } - // ^^^ if (developerTools) { SectionDividerSpaced()