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