Render Owner in the horizontal list when editing Admins. Closes #5634.

This commit is contained in:
Benoit Marty 2025-11-14 17:31:17 +01:00
parent 2120b5c5bd
commit 8586e25774
2 changed files with 18 additions and 3 deletions

View file

@ -126,8 +126,6 @@ internal fun aChangeRolesStateWithOwners() = aChangeRolesState(
}
},
selectedUsers = persistentListOf(
aMatrixUser(id = "@alice:server.org", displayName = "Alice"),
aMatrixUser(id = "@bob:server.org", displayName = "Bob"),
aMatrixUser(id = "@carol:server.org", displayName = "Carol"),
)
)

View file

@ -30,6 +30,9 @@ import androidx.compose.foundation.lazy.items
import androidx.compose.foundation.lazy.rememberLazyListState
import androidx.compose.material3.ExperimentalMaterial3Api
import androidx.compose.runtime.Composable
import androidx.compose.runtime.derivedStateOf
import androidx.compose.runtime.getValue
import androidx.compose.runtime.remember
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.res.stringResource
@ -71,6 +74,7 @@ import io.element.android.libraries.matrix.ui.components.SelectedUsersRowList
import io.element.android.libraries.matrix.ui.model.getAvatarData
import io.element.android.libraries.ui.strings.CommonStrings
import kotlinx.collections.immutable.ImmutableList
import kotlinx.collections.immutable.toImmutableList
@OptIn(ExperimentalMaterial3Api::class)
@Composable
@ -226,7 +230,20 @@ private fun SearchResultsList(
state = lazyListState,
) {
item {
selectedUsersList(selectedUsers)
if (currentRole == RoomMember.Role.Admin) {
val ownersAndSelectedUsers by remember {
derivedStateOf {
// Also include the owners in the horizontal list
val owners = searchResults.owners.map {
it.toMatrixUser()
}
(owners + selectedUsers).toImmutableList()
}
}
selectedUsersList(ownersAndSelectedUsers)
} else {
selectedUsersList(selectedUsers)
}
}
if (searchResults.owners.isNotEmpty()) {
stickyHeader { ListSectionHeader(text = stringResource(R.string.screen_room_roles_and_permissions_owners)) }