From 09ff3294d5e22e0db34f5924fec5639f775811b4 Mon Sep 17 00:00:00 2001 From: Benoit Marty Date: Mon, 27 Apr 2026 10:23:56 +0200 Subject: [PATCH] Ensure that all the ModalBottomSheet can scroll. --- .../configureroom/SelectParentSpaceOptions.kt | 3 ++- .../home/impl/roomlist/RoomListContextMenu.kt | 7 +++++- .../roomlist/RoomListDeclineInviteMenu.kt | 6 ++++- .../impl/spacefilters/SpaceFiltersView.kt | 3 ++- .../invitepeople/impl/InvitePeopleView.kt | 1 + .../impl/actionlist/ActionListView.kt | 1 + .../ResolveVerifiedUserSendFailureView.kt | 1 + .../messagecomposer/AttachmentsBottomSheet.kt | 6 ++++- .../CustomReactionBottomSheet.kt | 3 ++- .../reactionsummary/ReactionSummaryView.kt | 3 ++- .../bottomsheet/ReadReceiptBottomSheet.kt | 3 ++- .../impl/root/RolesAndPermissionsView.kt | 1 + .../impl/RoomMemberModerationView.kt | 7 +++++- .../joinbyaddress/JoinRoomByAddressView.kt | 6 ++++- .../components/SimpleModalBottomSheet.kt | 6 ++++- .../theme/components/ModalBottomSheet.kt | 22 +++++++++++++++++-- .../ui/components/AvatarActionBottomSheet.kt | 1 + .../CreateDmConfirmationBottomSheet.kt | 20 +++++++++++------ .../MediaDeleteConfirmationBottomSheet.kt | 3 ++- .../impl/details/MediaDetailsBottomSheet.kt | 1 + .../textcomposer/CaptionWarningBottomSheet.kt | 6 ++++- 21 files changed, 88 insertions(+), 22 deletions(-) diff --git a/features/createroom/impl/src/main/kotlin/io/element/android/features/createroom/impl/configureroom/SelectParentSpaceOptions.kt b/features/createroom/impl/src/main/kotlin/io/element/android/features/createroom/impl/configureroom/SelectParentSpaceOptions.kt index 6b7b66b897..1480e57334 100644 --- a/features/createroom/impl/src/main/kotlin/io/element/android/features/createroom/impl/configureroom/SelectParentSpaceOptions.kt +++ b/features/createroom/impl/src/main/kotlin/io/element/android/features/createroom/impl/configureroom/SelectParentSpaceOptions.kt @@ -95,7 +95,8 @@ internal fun SelectParentSpaceOptions( sheetState.hide(coroutineScope) { displaySelectSpaceBottomSheet = false } - } + }, + scrollable = false, ) { SelectParentSpaceBottomSheet( spaces = spaces, diff --git a/features/home/impl/src/main/kotlin/io/element/android/features/home/impl/roomlist/RoomListContextMenu.kt b/features/home/impl/src/main/kotlin/io/element/android/features/home/impl/roomlist/RoomListContextMenu.kt index 30e3aaf0b7..569787c383 100644 --- a/features/home/impl/src/main/kotlin/io/element/android/features/home/impl/roomlist/RoomListContextMenu.kt +++ b/features/home/impl/src/main/kotlin/io/element/android/features/home/impl/roomlist/RoomListContextMenu.kt @@ -11,6 +11,8 @@ package io.element.android.features.home.impl.roomlist import androidx.compose.foundation.clickable import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.rememberScrollState +import androidx.compose.foundation.verticalScroll import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.MaterialTheme import androidx.compose.runtime.Composable @@ -43,6 +45,7 @@ fun RoomListContextMenu( ) { ModalBottomSheet( onDismissRequest = { eventSink(RoomListEvent.HideContextMenu) }, + scrollable = false, ) { RoomListModalBottomSheetContent( contextMenu = contextMenu, @@ -91,7 +94,9 @@ private fun RoomListModalBottomSheetContent( onReportRoomClick: () -> Unit, ) { Column( - modifier = Modifier.fillMaxWidth() + modifier = Modifier + .fillMaxWidth() + .verticalScroll(rememberScrollState()) ) { ListItem( headlineContent = { diff --git a/features/home/impl/src/main/kotlin/io/element/android/features/home/impl/roomlist/RoomListDeclineInviteMenu.kt b/features/home/impl/src/main/kotlin/io/element/android/features/home/impl/roomlist/RoomListDeclineInviteMenu.kt index d641a06063..74462ec10c 100644 --- a/features/home/impl/src/main/kotlin/io/element/android/features/home/impl/roomlist/RoomListDeclineInviteMenu.kt +++ b/features/home/impl/src/main/kotlin/io/element/android/features/home/impl/roomlist/RoomListDeclineInviteMenu.kt @@ -13,6 +13,8 @@ import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.rememberScrollState +import androidx.compose.foundation.verticalScroll import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment @@ -45,6 +47,7 @@ fun RoomListDeclineInviteMenu( ) { ModalBottomSheet( onDismissRequest = { eventSink(RoomListEvent.HideDeclineInviteMenu) }, + scrollable = false, ) { RoomListDeclineInviteMenuContent( roomName = menu.roomSummary.name?.toSafeLength( @@ -81,7 +84,8 @@ private fun RoomListDeclineInviteMenuContent( Column( modifier = Modifier .fillMaxWidth() - .padding(all = 16.dp), + .padding(all = 16.dp) + .verticalScroll(rememberScrollState()), horizontalAlignment = Alignment.CenterHorizontally, ) { Text( diff --git a/features/home/impl/src/main/kotlin/io/element/android/features/home/impl/spacefilters/SpaceFiltersView.kt b/features/home/impl/src/main/kotlin/io/element/android/features/home/impl/spacefilters/SpaceFiltersView.kt index fb77c74203..1f0d6ff7d9 100644 --- a/features/home/impl/src/main/kotlin/io/element/android/features/home/impl/spacefilters/SpaceFiltersView.kt +++ b/features/home/impl/src/main/kotlin/io/element/android/features/home/impl/spacefilters/SpaceFiltersView.kt @@ -81,7 +81,8 @@ fun SpaceFiltersView( if (state is SpaceFiltersState.Selecting) { state.eventSink(SpaceFiltersEvent.Selecting.Cancel) } - } + }, + scrollable = false, ) { Box( modifier = Modifier diff --git a/features/invitepeople/impl/src/main/kotlin/io/element/android/features/invitepeople/impl/InvitePeopleView.kt b/features/invitepeople/impl/src/main/kotlin/io/element/android/features/invitepeople/impl/InvitePeopleView.kt index 289ac193d4..b1f139f43c 100644 --- a/features/invitepeople/impl/src/main/kotlin/io/element/android/features/invitepeople/impl/InvitePeopleView.kt +++ b/features/invitepeople/impl/src/main/kotlin/io/element/android/features/invitepeople/impl/InvitePeopleView.kt @@ -262,6 +262,7 @@ private fun InvitePeopleConfirmModal( ModalBottomSheet( onDismissRequest = onDismiss, dragHandle = null, + scrollable = false, ) { IconTitleSubtitleMolecule( title = simplePluralStringResource( diff --git a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/actionlist/ActionListView.kt b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/actionlist/ActionListView.kt index ef446e36cf..e10dd2e1bc 100644 --- a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/actionlist/ActionListView.kt +++ b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/actionlist/ActionListView.kt @@ -156,6 +156,7 @@ fun ActionListView( sheetState = sheetState, onDismissRequest = ::onDismiss, modifier = modifier, + scrollable = false, ) { ActionListViewContent( state = state, diff --git a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/crypto/sendfailure/resolve/ResolveVerifiedUserSendFailureView.kt b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/crypto/sendfailure/resolve/ResolveVerifiedUserSendFailureView.kt index 98e2bba3be..c14dd03f1e 100644 --- a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/crypto/sendfailure/resolve/ResolveVerifiedUserSendFailureView.kt +++ b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/crypto/sendfailure/resolve/ResolveVerifiedUserSendFailureView.kt @@ -75,6 +75,7 @@ fun ResolveVerifiedUserSendFailureView( .navigationBarsPadding(), sheetState = sheetState, onDismissRequest = ::dismiss, + scrollable = true, ) { IconTitleSubtitleMolecule( modifier = Modifier.padding(24.dp), diff --git a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/messagecomposer/AttachmentsBottomSheet.kt b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/messagecomposer/AttachmentsBottomSheet.kt index 1fdb61f484..405e2b0be9 100644 --- a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/messagecomposer/AttachmentsBottomSheet.kt +++ b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/messagecomposer/AttachmentsBottomSheet.kt @@ -13,6 +13,8 @@ import androidx.compose.foundation.clickable import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.imePadding import androidx.compose.foundation.layout.navigationBarsPadding +import androidx.compose.foundation.rememberScrollState +import androidx.compose.foundation.verticalScroll import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.rememberModalBottomSheetState import androidx.compose.runtime.Composable @@ -74,7 +76,8 @@ internal fun AttachmentsBottomSheet( sheetState = rememberModalBottomSheetState( skipPartiallyExpanded = true ), - onDismissRequest = { isVisible = false } + onDismissRequest = { isVisible = false }, + scrollable = false, ) { AttachmentSourcePickerMenu( state = state, @@ -97,6 +100,7 @@ private fun AttachmentSourcePickerMenu( modifier = Modifier .navigationBarsPadding() .imePadding() + .verticalScroll(rememberScrollState()) ) { ListItem( modifier = Modifier.clickable { state.eventSink(MessageComposerEvent.PickAttachmentSource.PhotoFromCamera) }, diff --git a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/timeline/components/customreaction/CustomReactionBottomSheet.kt b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/timeline/components/customreaction/CustomReactionBottomSheet.kt index f42a26cf65..4ac83c520b 100644 --- a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/timeline/components/customreaction/CustomReactionBottomSheet.kt +++ b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/timeline/components/customreaction/CustomReactionBottomSheet.kt @@ -50,7 +50,8 @@ fun CustomReactionBottomSheet( ModalBottomSheet( onDismissRequest = ::onDismiss, sheetState = sheetState, - modifier = modifier + modifier = modifier, + scrollable = false, ) { val presenter = remember { EmojiPickerPresenter( diff --git a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/timeline/components/reactionsummary/ReactionSummaryView.kt b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/timeline/components/reactionsummary/ReactionSummaryView.kt index 03ce564eff..2a902fd692 100644 --- a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/timeline/components/reactionsummary/ReactionSummaryView.kt +++ b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/timeline/components/reactionsummary/ReactionSummaryView.kt @@ -90,7 +90,8 @@ fun ReactionSummaryView( if (state.target != null) { ModalBottomSheet( onDismissRequest = ::onDismiss, - modifier = modifier + modifier = modifier, + scrollable = false, ) { ReactionSummaryViewContent(summary = state.target) } diff --git a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/timeline/components/receipt/bottomsheet/ReadReceiptBottomSheet.kt b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/timeline/components/receipt/bottomsheet/ReadReceiptBottomSheet.kt index b65e326045..9637298d58 100644 --- a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/timeline/components/receipt/bottomsheet/ReadReceiptBottomSheet.kt +++ b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/timeline/components/receipt/bottomsheet/ReadReceiptBottomSheet.kt @@ -57,7 +57,8 @@ internal fun ReadReceiptBottomSheet( sheetState.hide() state.eventSink(ReadReceiptBottomSheetEvent.Dismiss) } - } + }, + scrollable = false, ) { ReadReceiptBottomSheetContent( state = state, diff --git a/features/rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/root/RolesAndPermissionsView.kt b/features/rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/root/RolesAndPermissionsView.kt index 269fdee664..2f8dab8029 100644 --- a/features/rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/root/RolesAndPermissionsView.kt +++ b/features/rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/root/RolesAndPermissionsView.kt @@ -153,6 +153,7 @@ private fun ChangeOwnRoleBottomSheet( .navigationBarsPadding(), sheetState = sheetState, onDismissRequest = ::dismiss, + scrollable = true, ) { Text( modifier = Modifier.padding(14.dp), diff --git a/features/roommembermoderation/impl/src/main/kotlin/io/element/android/features/roommembermoderation/impl/RoomMemberModerationView.kt b/features/roommembermoderation/impl/src/main/kotlin/io/element/android/features/roommembermoderation/impl/RoomMemberModerationView.kt index ac6c5bc4cb..884e421e1f 100644 --- a/features/roommembermoderation/impl/src/main/kotlin/io/element/android/features/roommembermoderation/impl/RoomMemberModerationView.kt +++ b/features/roommembermoderation/impl/src/main/kotlin/io/element/android/features/roommembermoderation/impl/RoomMemberModerationView.kt @@ -17,6 +17,8 @@ import androidx.compose.foundation.layout.heightIn import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.statusBarsPadding import androidx.compose.foundation.layout.systemBarsPadding +import androidx.compose.foundation.rememberScrollState +import androidx.compose.foundation.verticalScroll import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.rememberModalBottomSheetState import androidx.compose.runtime.Composable @@ -224,9 +226,12 @@ private fun RoomMemberActionsBottomSheet( onDismiss() } }, + scrollable = false, ) { Column( - modifier = Modifier.padding(vertical = 16.dp) + modifier = Modifier + .padding(vertical = 16.dp) + .verticalScroll(rememberScrollState()) ) { Avatar( avatarData = user.getAvatarData(size = AvatarSize.RoomListManageUser), diff --git a/features/startchat/impl/src/main/kotlin/io/element/android/features/startchat/impl/joinbyaddress/JoinRoomByAddressView.kt b/features/startchat/impl/src/main/kotlin/io/element/android/features/startchat/impl/joinbyaddress/JoinRoomByAddressView.kt index e4f8a4faf2..360c59881c 100644 --- a/features/startchat/impl/src/main/kotlin/io/element/android/features/startchat/impl/joinbyaddress/JoinRoomByAddressView.kt +++ b/features/startchat/impl/src/main/kotlin/io/element/android/features/startchat/impl/joinbyaddress/JoinRoomByAddressView.kt @@ -13,8 +13,10 @@ import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.rememberScrollState import androidx.compose.foundation.text.KeyboardActions import androidx.compose.foundation.text.KeyboardOptions +import androidx.compose.foundation.verticalScroll import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.rememberModalBottomSheetState import androidx.compose.runtime.Composable @@ -52,11 +54,13 @@ fun JoinRoomByAddressView( onDismissRequest = { state.eventSink(JoinRoomByAddressEvent.Dismiss) }, + scrollable = false, ) { Column( modifier = Modifier .fillMaxWidth() - .padding(all = 16.dp), + .padding(all = 16.dp) + .verticalScroll(rememberScrollState()), horizontalAlignment = Alignment.CenterHorizontally, ) { RoomAddressField( diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/SimpleModalBottomSheet.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/SimpleModalBottomSheet.kt index 34d119508a..9c3930ac64 100644 --- a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/SimpleModalBottomSheet.kt +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/SimpleModalBottomSheet.kt @@ -14,6 +14,8 @@ import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.rememberScrollState +import androidx.compose.foundation.verticalScroll import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.rememberModalBottomSheetState import androidx.compose.runtime.Composable @@ -38,11 +40,13 @@ fun SimpleModalBottomSheet( onDismissRequest = onDismiss, modifier = modifier, sheetState = rememberModalBottomSheetState(skipPartiallyExpanded = true), + scrollable = false, ) { Column( modifier = Modifier .fillMaxWidth() - .padding(16.dp), + .padding(16.dp) + .verticalScroll(rememberScrollState()), ) { Text( title, diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/ModalBottomSheet.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/ModalBottomSheet.kt index 2c577ec6b7..a7e9672a3a 100644 --- a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/ModalBottomSheet.kt +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/ModalBottomSheet.kt @@ -10,10 +10,13 @@ package io.element.android.libraries.designsystem.theme.components import androidx.compose.foundation.background import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.ColumnScope import androidx.compose.foundation.layout.WindowInsets import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.rememberScrollState +import androidx.compose.foundation.verticalScroll import androidx.compose.material3.BottomSheetDefaults import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.MaterialTheme @@ -42,10 +45,15 @@ import io.element.android.libraries.designsystem.preview.sheetStateForPreview import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.launch +/** + * For parameter [scrollable], set it to true if the content of the sheet does not already contain a scrollable component, such as a LazyColumn, + * to avoid nested scroll issues. In this case, the content will be wrapped in a Column with verticalScroll. + */ @OptIn(ExperimentalMaterial3Api::class) @Composable fun ModalBottomSheet( onDismissRequest: () -> Unit, + scrollable: Boolean, modifier: Modifier = Modifier, sheetState: SheetState = rememberModalBottomSheetState(), shape: Shape = BottomSheetDefaults.ExpandedShape, @@ -79,8 +87,17 @@ fun ModalBottomSheet( scrimColor = scrimColor, dragHandle = dragHandle, contentWindowInsets = contentWindowInsets, - content = content, - ) + ) { + if (scrollable) { + Column( + modifier = Modifier.verticalScroll(rememberScrollState()), + ) { + content() + } + } else { + content() + } + } } @OptIn(ExperimentalMaterial3Api::class) @@ -112,6 +129,7 @@ private fun ContentToPreview() { ) { ModalBottomSheet( onDismissRequest = {}, + scrollable = false, ) { Text( text = "Sheet Content", 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 4628833bb4..880a7a9df6 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 @@ -67,6 +67,7 @@ fun AvatarActionBottomSheet( }, modifier = modifier, sheetState = sheetState, + scrollable = false, ) { AvatarActionBottomSheetContent( actions = actions, diff --git a/libraries/matrixui/src/main/kotlin/io/element/android/libraries/matrix/ui/components/CreateDmConfirmationBottomSheet.kt b/libraries/matrixui/src/main/kotlin/io/element/android/libraries/matrix/ui/components/CreateDmConfirmationBottomSheet.kt index f63bda378b..d663177ee6 100644 --- a/libraries/matrixui/src/main/kotlin/io/element/android/libraries/matrix/ui/components/CreateDmConfirmationBottomSheet.kt +++ b/libraries/matrixui/src/main/kotlin/io/element/android/libraries/matrix/ui/components/CreateDmConfirmationBottomSheet.kt @@ -14,6 +14,8 @@ import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.rememberScrollState +import androidx.compose.foundation.verticalScroll import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.Text import androidx.compose.material3.rememberModalBottomSheetState @@ -74,11 +76,13 @@ fun CreateDmConfirmationBottomSheet( modifier = modifier, onDismissRequest = onDismiss, sheetState = rememberModalBottomSheetState(skipPartiallyExpanded = true), + scrollable = false, ) { Column( modifier = Modifier .fillMaxWidth() - .padding(top = 24.dp, bottom = 16.dp, start = 16.dp, end = 16.dp), + .padding(top = 24.dp, bottom = 16.dp, start = 16.dp, end = 16.dp) + .verticalScroll(rememberScrollState()), horizontalAlignment = Alignment.CenterHorizontally, ) { if (isUserIdentityUnknown) { @@ -148,9 +152,11 @@ fun CreateDmConfirmationBottomSheet( @PreviewsDayNight @Composable -internal fun CreateDmConfirmationBottomSheetPreview(@PreviewParameter( - CreateDmConfirmationBottomSheetStateProvider::class -) state: CreateDmConfirmationBottomSheetState) = ElementPreview { +internal fun CreateDmConfirmationBottomSheetPreview( + @PreviewParameter( + CreateDmConfirmationBottomSheetStateProvider::class + ) state: CreateDmConfirmationBottomSheetState +) = ElementPreview { CreateDmConfirmationBottomSheet( matrixUser = state.matrixUser, isUserIdentityUnknown = state.isUserIdentityUnknown, @@ -166,7 +172,7 @@ data class CreateDmConfirmationBottomSheetState( class CreateDmConfirmationBottomSheetStateProvider : PreviewParameterProvider { override val values = sequenceOf( - CreateDmConfirmationBottomSheetState(matrixUser = aMatrixUser(), isUserIdentityUnknown = false), - CreateDmConfirmationBottomSheetState(matrixUser = aMatrixUser(), isUserIdentityUnknown = true), - ) + CreateDmConfirmationBottomSheetState(matrixUser = aMatrixUser(), isUserIdentityUnknown = false), + CreateDmConfirmationBottomSheetState(matrixUser = aMatrixUser(), isUserIdentityUnknown = true), + ) } diff --git a/libraries/mediaviewer/impl/src/main/kotlin/io/element/android/libraries/mediaviewer/impl/details/MediaDeleteConfirmationBottomSheet.kt b/libraries/mediaviewer/impl/src/main/kotlin/io/element/android/libraries/mediaviewer/impl/details/MediaDeleteConfirmationBottomSheet.kt index f13e2f1600..0cae7f0262 100644 --- a/libraries/mediaviewer/impl/src/main/kotlin/io/element/android/libraries/mediaviewer/impl/details/MediaDeleteConfirmationBottomSheet.kt +++ b/libraries/mediaviewer/impl/src/main/kotlin/io/element/android/libraries/mediaviewer/impl/details/MediaDeleteConfirmationBottomSheet.kt @@ -59,7 +59,8 @@ fun MediaDeleteConfirmationBottomSheet( ModalBottomSheet( modifier = modifier, onDismissRequest = onDismiss, - sheetState = rememberModalBottomSheetState(skipPartiallyExpanded = true) + sheetState = rememberModalBottomSheetState(skipPartiallyExpanded = true), + scrollable = false, ) { Column( modifier = Modifier diff --git a/libraries/mediaviewer/impl/src/main/kotlin/io/element/android/libraries/mediaviewer/impl/details/MediaDetailsBottomSheet.kt b/libraries/mediaviewer/impl/src/main/kotlin/io/element/android/libraries/mediaviewer/impl/details/MediaDetailsBottomSheet.kt index 9ce2dc4a7f..0c73bfd17c 100644 --- a/libraries/mediaviewer/impl/src/main/kotlin/io/element/android/libraries/mediaviewer/impl/details/MediaDetailsBottomSheet.kt +++ b/libraries/mediaviewer/impl/src/main/kotlin/io/element/android/libraries/mediaviewer/impl/details/MediaDetailsBottomSheet.kt @@ -72,6 +72,7 @@ fun MediaDetailsBottomSheet( ModalBottomSheet( modifier = modifier, onDismissRequest = onDismiss, + scrollable = false, ) { Column( modifier = Modifier diff --git a/libraries/textcomposer/impl/src/main/kotlin/io/element/android/libraries/textcomposer/CaptionWarningBottomSheet.kt b/libraries/textcomposer/impl/src/main/kotlin/io/element/android/libraries/textcomposer/CaptionWarningBottomSheet.kt index 23b4fae3a9..bec837664f 100644 --- a/libraries/textcomposer/impl/src/main/kotlin/io/element/android/libraries/textcomposer/CaptionWarningBottomSheet.kt +++ b/libraries/textcomposer/impl/src/main/kotlin/io/element/android/libraries/textcomposer/CaptionWarningBottomSheet.kt @@ -12,6 +12,8 @@ import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.rememberScrollState +import androidx.compose.foundation.verticalScroll import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.Text import androidx.compose.runtime.Composable @@ -37,11 +39,13 @@ fun CaptionWarningBottomSheet( ModalBottomSheet( modifier = modifier, onDismissRequest = onDismiss, + scrollable = false, ) { Column( modifier = Modifier .fillMaxWidth() - .padding(horizontal = 16.dp), + .padding(horizontal = 16.dp) + .verticalScroll(rememberScrollState()), horizontalAlignment = Alignment.CenterHorizontally, verticalArrangement = Arrangement.spacedBy(16.dp), ) {