use derived state

This commit is contained in:
Florian Renaud
2023-04-13 17:49:14 +02:00
parent 0ea59b52db
commit dac6534e1e
@@ -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) {