Merge pull request #823 from vector-im/feature/bma/snackbarFix

Snackbar fix
This commit is contained in:
Benoit Marty 2023-07-07 22:04:37 +02:00 committed by GitHub
commit b0ec6ba7a5
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
9 changed files with 34 additions and 10 deletions

View file

@ -50,6 +50,7 @@ fun PreferenceView(
title: String,
modifier: Modifier = Modifier,
onBackPressed: () -> Unit = {},
snackbarHost: @Composable () -> Unit = {},
content: @Composable ColumnScope.() -> Unit,
) {
Scaffold(
@ -64,6 +65,7 @@ fun PreferenceView(
onBackPressed = onBackPressed,
)
},
snackbarHost = snackbarHost,
content = {
Column(
modifier = Modifier

View file

@ -25,7 +25,6 @@ import androidx.compose.runtime.State
import androidx.compose.runtime.collectAsState
import androidx.compose.runtime.compositionLocalOf
import androidx.compose.runtime.remember
import androidx.compose.runtime.rememberCoroutineScope
import androidx.compose.ui.res.stringResource
import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.flow.MutableStateFlow
@ -69,14 +68,13 @@ fun SnackbarDispatcher.collectSnackbarMessageAsState(): State<SnackbarMessage?>
@Composable
fun rememberSnackbarHostState(snackbarMessage: SnackbarMessage?): SnackbarHostState {
val snackbarHostState = remember { SnackbarHostState() }
val coroutineScope = rememberCoroutineScope()
val snackbarMessageText = snackbarMessage?.let {
stringResource(id = snackbarMessage.messageResId)
}
val dispatcher = LocalSnackbarDispatcher.current
LaunchedEffect(snackbarMessage) {
if (snackbarMessageText == null) return@LaunchedEffect
coroutineScope.launch {
launch {
snackbarHostState.showSnackbar(
message = snackbarMessageText,
duration = snackbarMessage.duration,