Do not create a new immutable list from a List every time we want to produce a new state

This commit is contained in:
Benoit Marty 2025-10-10 10:10:13 +02:00
parent d1822fd33b
commit ea2307a393

View file

@ -16,6 +16,7 @@ import io.element.android.features.invite.api.SeenInvitesStore
import io.element.android.libraries.architecture.Presenter
import io.element.android.libraries.matrix.api.MatrixClient
import io.element.android.libraries.matrix.ui.safety.rememberHideInvitesAvatar
import kotlinx.collections.immutable.persistentListOf
import kotlinx.collections.immutable.persistentSetOf
import kotlinx.collections.immutable.toImmutableList
import kotlinx.collections.immutable.toImmutableSet
@ -29,7 +30,10 @@ class HomeSpacesPresenter(
@Composable
override fun present(): HomeSpacesState {
val hideInvitesAvatar by client.rememberHideInvitesAvatar()
val spaceRooms by client.spaceService.spaceRoomsFlow.collectAsState(emptyList())
val spaceRooms by remember {
client.spaceService.spaceRoomsFlow.map { it.toImmutableList() }
}.collectAsState(persistentListOf())
val seenSpaceInvites by remember {
seenInvitesStore.seenRoomIds().map { it.toImmutableSet() }
}.collectAsState(persistentSetOf())
@ -40,7 +44,7 @@ class HomeSpacesPresenter(
return HomeSpacesState(
space = CurrentSpace.Root,
spaceRooms = spaceRooms.toImmutableList(),
spaceRooms = spaceRooms,
seenSpaceInvites = seenSpaceInvites,
hideInvitesAvatar = hideInvitesAvatar,
eventSink = ::handleEvents,