Use AsyncView in EditDefaultNotificationSettingView
This commit is contained in:
parent
469e34a0d4
commit
537e4cd4a7
1 changed files with 12 additions and 20 deletions
|
|
@ -22,20 +22,18 @@ import androidx.compose.runtime.Composable
|
||||||
import androidx.compose.ui.Modifier
|
import androidx.compose.ui.Modifier
|
||||||
import androidx.compose.ui.res.stringResource
|
import androidx.compose.ui.res.stringResource
|
||||||
import androidx.compose.ui.tooling.preview.PreviewParameter
|
import androidx.compose.ui.tooling.preview.PreviewParameter
|
||||||
import io.element.android.libraries.architecture.Async
|
import io.element.android.libraries.designsystem.components.async.AsyncView
|
||||||
import io.element.android.libraries.designsystem.components.ProgressDialog
|
|
||||||
import io.element.android.libraries.designsystem.components.avatar.Avatar
|
import io.element.android.libraries.designsystem.components.avatar.Avatar
|
||||||
import io.element.android.libraries.designsystem.components.avatar.AvatarData
|
import io.element.android.libraries.designsystem.components.avatar.AvatarData
|
||||||
import io.element.android.libraries.designsystem.components.avatar.AvatarSize
|
import io.element.android.libraries.designsystem.components.avatar.AvatarSize
|
||||||
import io.element.android.libraries.designsystem.components.dialogs.ErrorDialog
|
|
||||||
import io.element.android.libraries.designsystem.components.list.ListItemContent
|
import io.element.android.libraries.designsystem.components.list.ListItemContent
|
||||||
import io.element.android.libraries.designsystem.components.preferences.PreferenceCategory
|
import io.element.android.libraries.designsystem.components.preferences.PreferenceCategory
|
||||||
|
import io.element.android.libraries.designsystem.components.preferences.PreferencePage
|
||||||
import io.element.android.libraries.designsystem.preview.ElementPreview
|
import io.element.android.libraries.designsystem.preview.ElementPreview
|
||||||
|
import io.element.android.libraries.designsystem.preview.PreviewsDayNight
|
||||||
import io.element.android.libraries.designsystem.theme.components.ListItem
|
import io.element.android.libraries.designsystem.theme.components.ListItem
|
||||||
import io.element.android.libraries.designsystem.theme.components.Text
|
import io.element.android.libraries.designsystem.theme.components.Text
|
||||||
import io.element.android.libraries.matrix.api.core.RoomId
|
import io.element.android.libraries.matrix.api.core.RoomId
|
||||||
import io.element.android.libraries.designsystem.components.preferences.PreferencePage
|
|
||||||
import io.element.android.libraries.designsystem.preview.PreviewsDayNight
|
|
||||||
import io.element.android.libraries.matrix.api.room.RoomNotificationMode
|
import io.element.android.libraries.matrix.api.room.RoomNotificationMode
|
||||||
import io.element.android.libraries.ui.strings.CommonStrings
|
import io.element.android.libraries.ui.strings.CommonStrings
|
||||||
|
|
||||||
|
|
@ -46,11 +44,10 @@ import io.element.android.libraries.ui.strings.CommonStrings
|
||||||
@Composable
|
@Composable
|
||||||
fun EditDefaultNotificationSettingView(
|
fun EditDefaultNotificationSettingView(
|
||||||
state: EditDefaultNotificationSettingState,
|
state: EditDefaultNotificationSettingState,
|
||||||
openRoomNotificationSettings:(roomId: RoomId) -> Unit,
|
openRoomNotificationSettings: (roomId: RoomId) -> Unit,
|
||||||
onBackPressed: () -> Unit,
|
onBackPressed: () -> Unit,
|
||||||
modifier: Modifier = Modifier,
|
modifier: Modifier = Modifier,
|
||||||
) {
|
) {
|
||||||
|
|
||||||
val title = if (state.isOneToOne) {
|
val title = if (state.isOneToOne) {
|
||||||
CommonStrings.screen_notification_settings_direct_chats
|
CommonStrings.screen_notification_settings_direct_chats
|
||||||
} else {
|
} else {
|
||||||
|
|
@ -118,21 +115,16 @@ fun EditDefaultNotificationSettingView(
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
when (state.changeNotificationSettingAction) {
|
val errorMessage = stringResource(CommonStrings.screen_notification_settings_edit_failed_updating_default_mode)
|
||||||
is Async.Loading -> {
|
AsyncView(
|
||||||
ProgressDialog()
|
async = state.changeNotificationSettingAction,
|
||||||
}
|
errorTransform = { errorMessage },
|
||||||
is Async.Failure -> {
|
onErrorDismiss = { state.eventSink(EditDefaultNotificationSettingStateEvents.ClearError) },
|
||||||
ErrorDialog(
|
onSuccess = {},
|
||||||
title = stringResource(CommonStrings.dialog_title_error),
|
)
|
||||||
content = stringResource(CommonStrings.screen_notification_settings_edit_failed_updating_default_mode),
|
|
||||||
onDismiss = { state.eventSink(EditDefaultNotificationSettingStateEvents.ClearError) },
|
|
||||||
)
|
|
||||||
}
|
|
||||||
else -> Unit
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@PreviewsDayNight
|
@PreviewsDayNight
|
||||||
@Composable
|
@Composable
|
||||||
internal fun EditDefaultNotificationSettingViewPreview(
|
internal fun EditDefaultNotificationSettingViewPreview(
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue