Do not create a new immutable list from a List every time we want to produce a new state
This commit is contained in:
parent
2b21e12f97
commit
84c2752480
1 changed files with 6 additions and 2 deletions
|
|
@ -16,6 +16,7 @@ import io.element.android.features.invite.api.SeenInvitesStore
|
||||||
import io.element.android.libraries.architecture.Presenter
|
import io.element.android.libraries.architecture.Presenter
|
||||||
import io.element.android.libraries.matrix.api.MatrixClient
|
import io.element.android.libraries.matrix.api.MatrixClient
|
||||||
import io.element.android.libraries.matrix.ui.safety.rememberHideInvitesAvatar
|
import io.element.android.libraries.matrix.ui.safety.rememberHideInvitesAvatar
|
||||||
|
import kotlinx.collections.immutable.persistentListOf
|
||||||
import kotlinx.collections.immutable.persistentSetOf
|
import kotlinx.collections.immutable.persistentSetOf
|
||||||
import kotlinx.collections.immutable.toImmutableList
|
import kotlinx.collections.immutable.toImmutableList
|
||||||
import kotlinx.collections.immutable.toImmutableSet
|
import kotlinx.collections.immutable.toImmutableSet
|
||||||
|
|
@ -29,7 +30,10 @@ class HomeSpacesPresenter(
|
||||||
@Composable
|
@Composable
|
||||||
override fun present(): HomeSpacesState {
|
override fun present(): HomeSpacesState {
|
||||||
val hideInvitesAvatar by client.rememberHideInvitesAvatar()
|
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 {
|
val seenSpaceInvites by remember {
|
||||||
seenInvitesStore.seenRoomIds().map { it.toImmutableSet() }
|
seenInvitesStore.seenRoomIds().map { it.toImmutableSet() }
|
||||||
}.collectAsState(persistentSetOf())
|
}.collectAsState(persistentSetOf())
|
||||||
|
|
@ -40,7 +44,7 @@ class HomeSpacesPresenter(
|
||||||
|
|
||||||
return HomeSpacesState(
|
return HomeSpacesState(
|
||||||
space = CurrentSpace.Root,
|
space = CurrentSpace.Root,
|
||||||
spaceRooms = spaceRooms.toImmutableList(),
|
spaceRooms = spaceRooms,
|
||||||
seenSpaceInvites = seenSpaceInvites,
|
seenSpaceInvites = seenSpaceInvites,
|
||||||
hideInvitesAvatar = hideInvitesAvatar,
|
hideInvitesAvatar = hideInvitesAvatar,
|
||||||
eventSink = ::handleEvents,
|
eventSink = ::handleEvents,
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue