iterate on the isSelected value. Let the UI decide how to render.

This commit is contained in:
Benoit Marty 2025-08-14 09:13:21 +02:00 committed by Benoit Marty
parent e74fcde43e
commit ae00c28c0d
3 changed files with 10 additions and 11 deletions

View file

@ -176,7 +176,7 @@ class DefaultInvitePeoplePresenter @AssistedInject constructor(
val isInvited = existingMembership == RoomMembershipState.INVITE
InvitableUser(
matrixUser = result.matrixUser,
isSelected = selectedUsers.value.contains(result.matrixUser) || isJoined || isInvited,
isSelected = selectedUsers.value.contains(result.matrixUser),
isAlreadyJoined = isJoined,
isAlreadyInvited = isInvited,
isUnresolved = result.isUnresolved,

View file

@ -127,10 +127,9 @@ private fun InvitePeopleSearchBar(
LazyColumn {
itemsIndexed(results) { index, invitableUser ->
val notInvitedOrJoined =
!(invitableUser.isAlreadyInvited || invitableUser.isAlreadyJoined)
val isUnresolved = invitableUser.isUnresolved && notInvitedOrJoined
val enabled = isUnresolved || notInvitedOrJoined
val invitedOrJoined = invitableUser.isAlreadyInvited || invitableUser.isAlreadyJoined
val isUnresolved = invitableUser.isUnresolved && !invitedOrJoined
val enabled = isUnresolved || !invitedOrJoined
val data = if (isUnresolved) {
CheckableUserRowData.Unresolved(
avatarData = invitableUser.matrixUser.getAvatarData(AvatarSize.UserListItem),
@ -152,7 +151,7 @@ private fun InvitePeopleSearchBar(
)
}
CheckableUserRow(
checked = invitableUser.isSelected,
checked = invitableUser.isSelected || invitedOrJoined,
enabled = enabled,
data = data,
onCheckedChange = { onToggleUser(invitableUser.matrixUser) },