From 2d267605954c0b51196fb3d57cc093d48f83e8b3 Mon Sep 17 00:00:00 2001 From: TM Date: Wed, 22 May 2024 02:34:04 -0700 Subject: [PATCH] Implement show and clear errorMessages in Snackbar --- .../google/samples/apps/nowinandroid/ui/NiaApp.kt | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/app/src/main/kotlin/com/google/samples/apps/nowinandroid/ui/NiaApp.kt b/app/src/main/kotlin/com/google/samples/apps/nowinandroid/ui/NiaApp.kt index 4c8232a26..87b4837f4 100644 --- a/app/src/main/kotlin/com/google/samples/apps/nowinandroid/ui/NiaApp.kt +++ b/app/src/main/kotlin/com/google/samples/apps/nowinandroid/ui/NiaApp.kt @@ -93,6 +93,7 @@ fun NiaApp(appState: NiaAppState, modifier: Modifier = Modifier) { val snackbarHostState = remember { SnackbarHostState() } val isOffline by appState.isOffline.collectAsStateWithLifecycle() + val errorMessage by appState.errorMessage.collectAsStateWithLifecycle() // If user is not connected to the internet show a snack bar to inform them. val notConnectedMessage = stringResource(R.string.not_connected) @@ -104,6 +105,19 @@ fun NiaApp(appState: NiaAppState, modifier: Modifier = Modifier) { ) } } + LaunchedEffect(errorMessage) { + errorMessage?.let { + val snackBarResult = snackbarHostState.showSnackbar( + message = it, + actionLabel = "Continue", + duration = Indefinite + ) == ActionPerformed + + if (snackBarResult) { + appState.clearErrorMessage() + } + } + } NiaApp( appState = appState,