From d1a3daaa8e7d28b174012e2572b700c6ac6419cc Mon Sep 17 00:00:00 2001 From: Benoit Marty Date: Wed, 15 May 2024 18:05:08 +0200 Subject: [PATCH] Do not use MutableState in Composable function parameter. --- .../impl/configureroom/ConfigureRoomView.kt | 3 ++- .../user/editprofile/EditUserProfileView.kt | 3 ++- .../impl/edit/RoomDetailsEditView.kt | 3 ++- .../ui/components/AvatarActionBottomSheet.kt | 19 +++++++++---------- 4 files changed, 15 insertions(+), 13 deletions(-) diff --git a/features/createroom/impl/src/main/kotlin/io/element/android/features/createroom/impl/configureroom/ConfigureRoomView.kt b/features/createroom/impl/src/main/kotlin/io/element/android/features/createroom/impl/configureroom/ConfigureRoomView.kt index 813378e497..ad9bb7bfdf 100644 --- a/features/createroom/impl/src/main/kotlin/io/element/android/features/createroom/impl/configureroom/ConfigureRoomView.kt +++ b/features/createroom/impl/src/main/kotlin/io/element/android/features/createroom/impl/configureroom/ConfigureRoomView.kt @@ -134,7 +134,8 @@ fun ConfigureRoomView( AvatarActionBottomSheet( actions = state.avatarActions, - isVisible = isAvatarActionsSheetVisible, + isVisible = isAvatarActionsSheetVisible.value, + onDismiss = { isAvatarActionsSheetVisible.value = false }, onActionSelected = { state.eventSink(ConfigureRoomEvents.HandleAvatarAction(it)) } ) diff --git a/features/preferences/impl/src/main/kotlin/io/element/android/features/preferences/impl/user/editprofile/EditUserProfileView.kt b/features/preferences/impl/src/main/kotlin/io/element/android/features/preferences/impl/user/editprofile/EditUserProfileView.kt index fb8318653e..389d7c5b08 100644 --- a/features/preferences/impl/src/main/kotlin/io/element/android/features/preferences/impl/user/editprofile/EditUserProfileView.kt +++ b/features/preferences/impl/src/main/kotlin/io/element/android/features/preferences/impl/user/editprofile/EditUserProfileView.kt @@ -132,7 +132,8 @@ fun EditUserProfileView( AvatarActionBottomSheet( actions = state.avatarActions, - isVisible = isAvatarActionsSheetVisible, + isVisible = isAvatarActionsSheetVisible.value, + onDismiss = { isAvatarActionsSheetVisible.value = false }, onActionSelected = { state.eventSink(EditUserProfileEvents.HandleAvatarAction(it)) } ) diff --git a/features/roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/edit/RoomDetailsEditView.kt b/features/roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/edit/RoomDetailsEditView.kt index 5885a5092b..e0da0d2f19 100644 --- a/features/roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/edit/RoomDetailsEditView.kt +++ b/features/roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/edit/RoomDetailsEditView.kt @@ -158,7 +158,8 @@ fun RoomDetailsEditView( AvatarActionBottomSheet( actions = state.avatarActions, - isVisible = isAvatarActionsSheetVisible, + isVisible = isAvatarActionsSheetVisible.value, + onDismiss = { isAvatarActionsSheetVisible.value = false }, onActionSelected = { state.eventSink(RoomDetailsEditEvents.HandleAvatarAction(it)) } ) diff --git a/libraries/matrixui/src/main/kotlin/io/element/android/libraries/matrix/ui/components/AvatarActionBottomSheet.kt b/libraries/matrixui/src/main/kotlin/io/element/android/libraries/matrix/ui/components/AvatarActionBottomSheet.kt index da8704256e..84caa006d2 100644 --- a/libraries/matrixui/src/main/kotlin/io/element/android/libraries/matrix/ui/components/AvatarActionBottomSheet.kt +++ b/libraries/matrixui/src/main/kotlin/io/element/android/libraries/matrix/ui/components/AvatarActionBottomSheet.kt @@ -29,9 +29,6 @@ import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.MaterialTheme import androidx.compose.material3.rememberModalBottomSheetState import androidx.compose.runtime.Composable -import androidx.compose.runtime.MutableState -import androidx.compose.runtime.mutableStateOf -import androidx.compose.runtime.remember import androidx.compose.runtime.rememberCoroutineScope import androidx.compose.ui.Modifier import androidx.compose.ui.res.stringResource @@ -53,8 +50,9 @@ import kotlinx.collections.immutable.persistentListOf @Composable fun AvatarActionBottomSheet( actions: ImmutableList, - isVisible: MutableState, + isVisible: Boolean, onActionSelected: (action: AvatarAction) -> Unit, + onDismiss: () -> Unit, modifier: Modifier = Modifier, ) { val coroutineScope = rememberCoroutineScope() @@ -62,19 +60,19 @@ fun AvatarActionBottomSheet( skipPartiallyExpanded = true ) - BackHandler(enabled = isVisible.value) { - sheetState.hide(coroutineScope, then = { isVisible.value = false }) + BackHandler(enabled = isVisible) { + sheetState.hide(coroutineScope, then = { onDismiss() }) } fun onItemActionClicked(itemAction: AvatarAction) { onActionSelected(itemAction) - sheetState.hide(coroutineScope, then = { isVisible.value = false }) + sheetState.hide(coroutineScope, then = { onDismiss() }) } - if (isVisible.value) { + if (isVisible) { ModalBottomSheet( onDismissRequest = { - sheetState.hide(coroutineScope, then = { isVisible.value = false }) + sheetState.hide(coroutineScope, then = { onDismiss() }) }, modifier = modifier, sheetState = sheetState, @@ -126,7 +124,8 @@ private fun AvatarActionBottomSheetContent( internal fun AvatarActionBottomSheetPreview() = ElementPreview { AvatarActionBottomSheet( actions = persistentListOf(AvatarAction.TakePhoto, AvatarAction.ChoosePhoto, AvatarAction.Remove), - isVisible = remember { mutableStateOf(true) }, + isVisible = true, onActionSelected = { }, + onDismiss = { }, ) }