Use the CoroutineScope from the LaunchedEffect.

This commit is contained in:
Benoit Marty 2023-07-07 15:35:16 +02:00
parent 3e9396e27c
commit f8ff8d5e09

View file

@ -69,14 +69,13 @@ fun SnackbarDispatcher.collectSnackbarMessageAsState(): State<SnackbarMessage?>
@Composable @Composable
fun rememberSnackbarHostState(snackbarMessage: SnackbarMessage?): SnackbarHostState { fun rememberSnackbarHostState(snackbarMessage: SnackbarMessage?): SnackbarHostState {
val snackbarHostState = remember { SnackbarHostState() } val snackbarHostState = remember { SnackbarHostState() }
val coroutineScope = rememberCoroutineScope()
val snackbarMessageText = snackbarMessage?.let { val snackbarMessageText = snackbarMessage?.let {
stringResource(id = snackbarMessage.messageResId) stringResource(id = snackbarMessage.messageResId)
} }
val dispatcher = LocalSnackbarDispatcher.current val dispatcher = LocalSnackbarDispatcher.current
LaunchedEffect(snackbarMessage) { LaunchedEffect(snackbarMessage) {
if (snackbarMessageText == null) return@LaunchedEffect if (snackbarMessageText == null) return@LaunchedEffect
coroutineScope.launch { launch {
snackbarHostState.showSnackbar( snackbarHostState.showSnackbar(
message = snackbarMessageText, message = snackbarMessageText,
duration = snackbarMessage.duration, duration = snackbarMessage.duration,