Florian Walther (live streaming)
12/30/2021, 11:57 AMLaunchedEffect
by wrapping it inside a launch
block? Otherwise the showSnackbar
method blocks the coroutine because it's a suspend fun
LaunchedEffect(Unit) {
viewModel.events.collect { event ->
when (event) {
is RewardListViewModel.Event.ShowUndoRewardSnackbar -> {
launch {
val snackbarResult = scaffoldState.snackbarHostState.showSnackbar(
message = context.getString(R.string.reward_deleted),
actionLabel = context.getString(R.string.undo),
)
if (snackbarResult == SnackbarResult.ActionPerformed) {
viewModel.onUndoDeleteRewardConfirmed(event.reward)
}
}
Unit
}
is RewardListViewModel.Event.NavigateToEditRewardScreen -> {
navController.navigate(AddEditRewardScreenSpec.buildRoute(event.reward.id))
}
}.exhaustive
}
}
Dominaezzz
12/30/2021, 11:59 AMAlbert Chang
12/30/2021, 12:01 PMcollectLatest
instead of launching a new coroutine.Florian Walther (live streaming)
12/30/2021, 12:04 PMcollectLatest
makes sense actuallysorianog
12/30/2021, 2:06 PMFlorian Walther (live streaming)
12/30/2021, 2:54 PMsorianog
12/30/2021, 2:57 PMGeorgeS-Litesoft
12/30/2021, 2:57 PMsorianog
12/30/2021, 2:58 PMFlorian Walther (live streaming)
12/31/2021, 10:30 AM