Composer: avoid recomposition
This commit is contained in:
@@ -60,6 +60,12 @@ fun MessagesScreen(
|
||||
) {
|
||||
val viewModel: MessagesViewModel = mavericksViewModel(argsFactory = { roomId })
|
||||
val composerViewModel: MessageComposerViewModel = mavericksViewModel(argsFactory = { roomId })
|
||||
|
||||
fun onSendMessage(textMessage: String) {
|
||||
viewModel.sendMessage(textMessage)
|
||||
composerViewModel.updateText("")
|
||||
}
|
||||
|
||||
LogCompositions(tag = "MessagesScreen", msg = "Root")
|
||||
val actionsSheetState = rememberModalBottomSheetState(
|
||||
initialValue = ModalBottomSheetValue.Hidden,
|
||||
@@ -81,10 +87,7 @@ fun MessagesScreen(
|
||||
hasMoreToLoad = hasMoreToLoad,
|
||||
onReachedLoadMore = viewModel::loadMore,
|
||||
onBackPressed = onBackPressed,
|
||||
onSendMessage = {
|
||||
viewModel.sendMessage(it)
|
||||
composerViewModel.updateText("")
|
||||
},
|
||||
onSendMessage = ::onSendMessage,
|
||||
composerFullScreen = composerFullScreen,
|
||||
onComposerFullScreenChange = composerViewModel::onComposerFullScreenChange,
|
||||
onComposerTextChange = composerViewModel::updateText,
|
||||
@@ -193,7 +196,7 @@ fun MessagesContent(
|
||||
onFullscreenToggle = onComposerFullScreenChange,
|
||||
onComposerTextChange = onComposerTextChange,
|
||||
composerCanSendMessage = composerCanSendMessage,
|
||||
composerText = composerText?.charSequence,
|
||||
composerText = composerText?.charSequence?.toString(),
|
||||
modifier = Modifier
|
||||
.fillMaxWidth()
|
||||
.let {
|
||||
|
||||
@@ -1,9 +1,7 @@
|
||||
package io.element.android.x.textcomposer
|
||||
|
||||
import android.content.res.ColorStateList
|
||||
import android.graphics.Color
|
||||
import android.net.Uri
|
||||
import androidx.appcompat.widget.AppCompatEditText
|
||||
import androidx.compose.foundation.isSystemInDarkTheme
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.ui.Modifier
|
||||
@@ -20,7 +18,7 @@ fun TextComposer(
|
||||
onFullscreenToggle: () -> Unit,
|
||||
onComposerTextChange: (CharSequence) -> Unit,
|
||||
composerCanSendMessage: Boolean,
|
||||
composerText: CharSequence?,
|
||||
composerText: String?,
|
||||
) {
|
||||
val isInDarkMode = isSystemInDarkTheme()
|
||||
AndroidView(
|
||||
|
||||
Reference in New Issue
Block a user