mirror of
https://github.com/simplex-chat/simplex-chat.git
synced 2026-07-16 21:51:59 +00:00
GroupChatInfoView: render group members inside the same SectionView card as owner
Previously the members card showed only the current user (owner) and the
add-members button — the actual group members were rendered as separate
LazyColumn items() OUTSIDE the SectionView, so they sat on the gray
canvas without card chrome. Visually inconsistent: owner in a card,
everyone else floating.
Move filteredMembers.value.forEach { ... } INSIDE the SectionView lambda
so every member row is part of the same card as the owner. Drop the
explicit Divider() call (auto-divider handles it now). Move remember
key to member.groupMemberId so per-member state survives reorders.
Trade-off: lazy rendering of member rows is replaced with eager
composition inside a Column. For typical groups (<100 members) this is
imperceptible; very large groups may compose slower on open. Watching
for reports.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.7
parent
75006897e3
commit
fa29bb7a71
+4
-7
@@ -721,13 +721,8 @@ fun ModalData.GroupChatInfoLayout(
|
|||||||
SectionItemView(minHeight = 54.dp, padding = PaddingValues(horizontal = DEFAULT_PADDING)) {
|
SectionItemView(minHeight = 54.dp, padding = PaddingValues(horizontal = DEFAULT_PADDING)) {
|
||||||
MemberRow(groupInfo.membership, user = true)
|
MemberRow(groupInfo.membership, user = true)
|
||||||
}
|
}
|
||||||
}
|
filteredMembers.value.forEach { member ->
|
||||||
}
|
val showMenu = remember(member.groupMemberId) { mutableStateOf(false) }
|
||||||
}
|
|
||||||
if (!groupInfo.nextConnectPrepared && !groupInfo.useRelays) {
|
|
||||||
items(filteredMembers.value, key = { it.groupMemberId }) { member ->
|
|
||||||
Divider()
|
|
||||||
val showMenu = remember { mutableStateOf(false) }
|
|
||||||
val canBeSelected = groupInfo.membership.memberRole >= member.memberRole && member.memberRole < GroupMemberRole.Moderator
|
val canBeSelected = groupInfo.membership.memberRole >= member.memberRole && member.memberRole < GroupMemberRole.Moderator
|
||||||
SectionItemViewLongClickable(
|
SectionItemViewLongClickable(
|
||||||
click = {
|
click = {
|
||||||
@@ -756,6 +751,8 @@ fun ModalData.GroupChatInfoLayout(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
item {
|
item {
|
||||||
if (!groupInfo.nextConnectPrepared && !groupInfo.useRelays) {
|
if (!groupInfo.nextConnectPrepared && !groupInfo.useRelays) {
|
||||||
SectionDividerSpaced(maxTopPadding = true, maxBottomPadding = false)
|
SectionDividerSpaced(maxTopPadding = true, maxBottomPadding = false)
|
||||||
|
|||||||
Reference in New Issue
Block a user