Make LeaveSpaceState stable

This commit is contained in:
Benoit Marty
2025-10-09 17:25:25 +02:00
committed by Benoit Marty
parent 417918feed
commit c584842611

View File

@@ -10,6 +10,7 @@ package io.element.android.features.space.impl.leave
import io.element.android.libraries.architecture.AsyncAction
import io.element.android.libraries.architecture.AsyncData
import kotlinx.collections.immutable.ImmutableList
import kotlinx.collections.immutable.toImmutableList
data class LeaveSpaceState(
val spaceName: String?,
@@ -18,10 +19,15 @@ data class LeaveSpaceState(
val leaveSpaceAction: AsyncAction<Unit>,
val eventSink: (LeaveSpaceEvents) -> Unit,
) {
private val rooms = selectableSpaceRooms.dataOrNull().orEmpty()
private val partition = rooms.partition { it.isLastAdmin }
private val lastAdminRooms = partition.first
private val selectableRooms = partition.second
private val rooms = selectableSpaceRooms.dataOrNull().orEmpty().toImmutableList()
private val lastAdminRooms: ImmutableList<SelectableSpaceRoom>
private val selectableRooms: ImmutableList<SelectableSpaceRoom>
init {
val partition = rooms.partition { it.isLastAdmin }
lastAdminRooms = partition.first.toImmutableList()
selectableRooms = partition.second.toImmutableList()
}
/**
* True if we should show the quick action to select/deselect all rooms.