use derived state

This commit is contained in:
Florian Renaud 2023-04-13 17:49:14 +02:00
parent 5699dcf39e
commit 4337a95a39

View file

@ -18,8 +18,10 @@ package io.element.android.features.createroom.impl.configureroom
import android.net.Uri import android.net.Uri
import androidx.compose.runtime.Composable import androidx.compose.runtime.Composable
import androidx.compose.runtime.derivedStateOf
import androidx.compose.runtime.getValue import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
import androidx.compose.runtime.saveable.rememberSaveable import androidx.compose.runtime.saveable.rememberSaveable
import androidx.compose.runtime.setValue import androidx.compose.runtime.setValue
import dagger.assisted.Assisted import dagger.assisted.Assisted
@ -43,9 +45,10 @@ class ConfigureRoomPresenter @AssistedInject constructor(
var topic by rememberSaveable { mutableStateOf("") } var topic by rememberSaveable { mutableStateOf("") }
var avatarUri by rememberSaveable { mutableStateOf<Uri?>(null) } var avatarUri by rememberSaveable { mutableStateOf<Uri?>(null) }
var privacy by rememberSaveable { mutableStateOf<RoomPrivacy?>(null) } var privacy by rememberSaveable { mutableStateOf<RoomPrivacy?>(null) }
val isCreateButtonEnabled by rememberSaveable(roomName, privacy) { val isCreateButtonEnabled by remember {
val enabled = roomName.isNotEmpty() && privacy != null derivedStateOf {
mutableStateOf(enabled) roomName.isNotEmpty() && privacy != null
}
} }
fun handleEvents(event: ConfigureRoomEvents) { fun handleEvents(event: ConfigureRoomEvents) {