multiplatform: showing progress indicator while sending a text message (#2880)
* multiplatform: showing progress indicator while sending a text message * progress indicator after timeout --------- Co-authored-by: Evgeny Poberezkin <2769109+epoberezkin@users.noreply.github.com>
This commit is contained in:
parent
6ce00b45aa
commit
b02eb79a2c
@ -64,12 +64,22 @@ fun SendMsgView(
|
|||||||
|
|
||||||
Box(Modifier.padding(vertical = 8.dp)) {
|
Box(Modifier.padding(vertical = 8.dp)) {
|
||||||
val cs = composeState.value
|
val cs = composeState.value
|
||||||
val showProgress = cs.inProgress && (cs.preview is ComposePreview.MediaPreview || cs.preview is ComposePreview.FilePreview)
|
var progressByTimeout by rememberSaveable { mutableStateOf(false) }
|
||||||
|
LaunchedEffect(composeState.value.inProgress) {
|
||||||
|
progressByTimeout = if (composeState.value.inProgress) {
|
||||||
|
delay(500)
|
||||||
|
composeState.value.inProgress
|
||||||
|
} else {
|
||||||
|
false
|
||||||
|
}
|
||||||
|
}
|
||||||
val showVoiceButton = cs.message.isEmpty() && showVoiceRecordIcon && !composeState.value.editing &&
|
val showVoiceButton = cs.message.isEmpty() && showVoiceRecordIcon && !composeState.value.editing &&
|
||||||
cs.liveMessage == null && (cs.preview is ComposePreview.NoPreview || recState.value is RecordingState.Started)
|
cs.liveMessage == null && (cs.preview is ComposePreview.NoPreview || recState.value is RecordingState.Started)
|
||||||
val showDeleteTextButton = rememberSaveable { mutableStateOf(false) }
|
val showDeleteTextButton = rememberSaveable { mutableStateOf(false) }
|
||||||
PlatformTextField(composeState, textStyle, showDeleteTextButton, userIsObserver, onMessageChange, editPrevMessage) {
|
PlatformTextField(composeState, textStyle, showDeleteTextButton, userIsObserver, onMessageChange, editPrevMessage) {
|
||||||
sendMessage(null)
|
if (!cs.inProgress) {
|
||||||
|
sendMessage(null)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
// Disable clicks on text field
|
// Disable clicks on text field
|
||||||
if (cs.preview is ComposePreview.VoicePreview || !userCanSend || cs.inProgress) {
|
if (cs.preview is ComposePreview.VoicePreview || !userCanSend || cs.inProgress) {
|
||||||
@ -98,7 +108,7 @@ fun SendMsgView(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
when {
|
when {
|
||||||
showProgress -> ProgressIndicator()
|
progressByTimeout -> ProgressIndicator()
|
||||||
showVoiceButton -> {
|
showVoiceButton -> {
|
||||||
Row(verticalAlignment = Alignment.CenterVertically) {
|
Row(verticalAlignment = Alignment.CenterVertically) {
|
||||||
val stopRecOnNextClick = remember { mutableStateOf(false) }
|
val stopRecOnNextClick = remember { mutableStateOf(false) }
|
||||||
|
Loading…
Reference in New Issue
Block a user