Browse Source

Fix composer options bottom sheet position (#1469)

pull/1473/head
jonnyandrew 12 months ago committed by GitHub
parent
commit
6bca8be525
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 10
      features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/MessagesView.kt
  2. 43
      features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/messagecomposer/MessageComposerView.kt

10
features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/MessagesView.kt

@ -50,6 +50,7 @@ import io.element.android.features.messages.impl.actionlist.ActionListEvents
import io.element.android.features.messages.impl.actionlist.ActionListView import io.element.android.features.messages.impl.actionlist.ActionListView
import io.element.android.features.messages.impl.actionlist.model.TimelineItemAction import io.element.android.features.messages.impl.actionlist.model.TimelineItemAction
import io.element.android.features.messages.impl.attachments.Attachment import io.element.android.features.messages.impl.attachments.Attachment
import io.element.android.features.messages.impl.messagecomposer.AttachmentsBottomSheet
import io.element.android.features.messages.impl.messagecomposer.AttachmentsState import io.element.android.features.messages.impl.messagecomposer.AttachmentsState
import io.element.android.features.messages.impl.messagecomposer.MessageComposerEvents import io.element.android.features.messages.impl.messagecomposer.MessageComposerEvents
import io.element.android.features.messages.impl.messagecomposer.MessageComposerView import io.element.android.features.messages.impl.messagecomposer.MessageComposerView
@ -283,6 +284,13 @@ private fun MessagesViewContent(
.navigationBarsPadding() .navigationBarsPadding()
.imePadding(), .imePadding(),
) { ) {
AttachmentsBottomSheet(
state = state.composerState,
onSendLocationClicked = onSendLocationClicked,
onCreatePollClicked = onCreatePollClicked,
enableTextFormatting = state.enableTextFormatting,
)
ExpandableBottomSheetScaffold( ExpandableBottomSheetScaffold(
sheetDragHandle = if (state.composerState.showTextFormatting) { sheetDragHandle = if (state.composerState.showTextFormatting) {
@Composable { BottomSheetDragHandle() } @Composable { BottomSheetDragHandle() }
@ -310,8 +318,6 @@ private fun MessagesViewContent(
MessageComposerView( MessageComposerView(
state = state.composerState, state = state.composerState,
subcomposing = subcomposing, subcomposing = subcomposing,
onSendLocationClicked = onSendLocationClicked,
onCreatePollClicked = onCreatePollClicked,
enableTextFormatting = state.enableTextFormatting, enableTextFormatting = state.enableTextFormatting,
modifier = Modifier modifier = Modifier
.fillMaxWidth(), .fillMaxWidth(),

43
features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/messagecomposer/MessageComposerView.kt

@ -16,7 +16,6 @@
package io.element.android.features.messages.impl.messagecomposer package io.element.android.features.messages.impl.messagecomposer
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.IntrinsicSize import androidx.compose.foundation.layout.IntrinsicSize
import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.height
@ -35,8 +34,6 @@ import kotlinx.coroutines.launch
fun MessageComposerView( fun MessageComposerView(
state: MessageComposerState, state: MessageComposerState,
subcomposing: Boolean, subcomposing: Boolean,
onSendLocationClicked: () -> Unit,
onCreatePollClicked: () -> Unit,
enableTextFormatting: Boolean, enableTextFormatting: Boolean,
modifier: Modifier = Modifier, modifier: Modifier = Modifier,
) { ) {
@ -67,28 +64,20 @@ fun MessageComposerView(
} }
} }
Box(modifier = modifier) { TextComposer(
AttachmentsBottomSheet( modifier = modifier,
state = state, state = state.richTextEditorState,
onSendLocationClicked = onSendLocationClicked, subcomposing = subcomposing,
onCreatePollClicked = onCreatePollClicked, onRequestFocus = ::onRequestFocus,
enableTextFormatting = enableTextFormatting, onSendMessage = ::sendMessage,
) composerMode = state.mode,
showTextFormatting = state.showTextFormatting,
TextComposer( onResetComposerMode = ::onCloseSpecialMode,
state = state.richTextEditorState, onAddAttachment = ::onAddAttachment,
subcomposing = subcomposing, onDismissTextFormatting = ::onDismissTextFormatting,
onRequestFocus = ::onRequestFocus, enableTextFormatting = enableTextFormatting,
onSendMessage = ::sendMessage, onError = ::onError,
composerMode = state.mode, )
showTextFormatting = state.showTextFormatting,
onResetComposerMode = ::onCloseSpecialMode,
onAddAttachment = ::onAddAttachment,
onDismissTextFormatting = ::onDismissTextFormatting,
enableTextFormatting = enableTextFormatting,
onError = ::onError,
)
}
} }
@PreviewsDayNight @PreviewsDayNight
@ -98,16 +87,12 @@ internal fun MessageComposerViewPreview(@PreviewParameter(MessageComposerStatePr
MessageComposerView( MessageComposerView(
modifier = Modifier.height(IntrinsicSize.Min), modifier = Modifier.height(IntrinsicSize.Min),
state = state, state = state,
onSendLocationClicked = {},
onCreatePollClicked = {},
enableTextFormatting = true, enableTextFormatting = true,
subcomposing = false, subcomposing = false,
) )
MessageComposerView( MessageComposerView(
modifier = Modifier.height(200.dp), modifier = Modifier.height(200.dp),
state = state, state = state,
onSendLocationClicked = {},
onCreatePollClicked = {},
enableTextFormatting = true, enableTextFormatting = true,
subcomposing = false, subcomposing = false,
) )

Loading…
Cancel
Save