Use AsyncView in NotificationSettingsView

This commit is contained in:
Benoit Marty 2023-11-03 16:27:37 +01:00 committed by Benoit Marty
parent 1e09d9c65f
commit cc5321f65a

View file

@ -24,9 +24,8 @@ import androidx.compose.ui.res.stringResource
import androidx.compose.ui.tooling.preview.PreviewParameter
import androidx.lifecycle.Lifecycle
import io.element.android.libraries.androidutils.system.startNotificationSettingsIntent
import io.element.android.libraries.architecture.Async
import io.element.android.libraries.designsystem.atomic.molecules.DialogLikeBannerMolecule
import io.element.android.libraries.designsystem.components.ProgressDialog
import io.element.android.libraries.designsystem.components.async.AsyncView
import io.element.android.libraries.designsystem.components.dialogs.ErrorDialog
import io.element.android.libraries.designsystem.components.preferences.PreferenceCategory
import io.element.android.libraries.designsystem.components.preferences.PreferencePage
@ -79,19 +78,13 @@ fun NotificationSettingsView(
// onCallsNotificationsChanged = { state.eventSink(NotificationSettingsEvents.SetCallNotificationsEnabled(it)) },
)
}
when (state.changeNotificationSettingAction) {
is Async.Loading -> {
ProgressDialog()
}
is Async.Failure -> {
ErrorDialog(
title = stringResource(CommonStrings.dialog_title_error),
content = stringResource(CommonStrings.screen_notification_settings_edit_failed_updating_default_mode),
onDismiss = { state.eventSink(NotificationSettingsEvents.ClearNotificationChangeError) },
)
}
else -> Unit
}
val errorMessage = stringResource(CommonStrings.screen_notification_settings_edit_failed_updating_default_mode)
AsyncView(
async = state.changeNotificationSettingAction,
errorTransform = { errorMessage },
onErrorDismiss = { state.eventSink(NotificationSettingsEvents.ClearNotificationChangeError) },
onSuccess = {},
)
}
}