mirror of
https://github.com/Novaloop-AG/element-x-android.git
synced 2026-11-03 06:55:41 +00:00
Composer: avoid recomposition
This commit is contained in:
+8
-5
@@ -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
-3
@@ -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(
|
||||||
|
|||||||
Reference in New Issue
Block a user