From 256eb23acf2542a5bc9911e887cccd50107441d0 Mon Sep 17 00:00:00 2001 From: Benoit Marty Date: Fri, 3 Nov 2023 14:52:08 +0100 Subject: [PATCH] Let SecureBackupEnableView use UserStoryFlowPage. --- .../impl/enable/SecureBackupEnableView.kt | 60 +++++-------------- .../atomic/pages/UserStoryFlowPage.kt | 4 +- 2 files changed, 17 insertions(+), 47 deletions(-) diff --git a/features/securebackup/impl/src/main/kotlin/io/element/android/features/securebackup/impl/enable/SecureBackupEnableView.kt b/features/securebackup/impl/src/main/kotlin/io/element/android/features/securebackup/impl/enable/SecureBackupEnableView.kt index 12e02663ec..ad844a7a68 100644 --- a/features/securebackup/impl/src/main/kotlin/io/element/android/features/securebackup/impl/enable/SecureBackupEnableView.kt +++ b/features/securebackup/impl/src/main/kotlin/io/element/android/features/securebackup/impl/enable/SecureBackupEnableView.kt @@ -16,29 +16,22 @@ package io.element.android.features.securebackup.impl.enable +import androidx.compose.foundation.layout.ColumnScope import androidx.compose.foundation.layout.fillMaxWidth -import androidx.compose.foundation.layout.padding -import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.runtime.Composable import androidx.compose.runtime.LaunchedEffect import androidx.compose.ui.Modifier import androidx.compose.ui.res.stringResource import androidx.compose.ui.tooling.preview.PreviewParameter -import androidx.compose.ui.unit.dp import io.element.android.features.securebackup.impl.R import io.element.android.libraries.architecture.Async -import io.element.android.libraries.designsystem.atomic.molecules.ButtonColumnMolecule -import io.element.android.libraries.designsystem.atomic.molecules.IconTitleSubtitleMolecule -import io.element.android.libraries.designsystem.atomic.pages.HeaderFooterPage -import io.element.android.libraries.designsystem.components.button.BackButton +import io.element.android.libraries.designsystem.atomic.pages.UserStoryFlowPage import io.element.android.libraries.designsystem.components.dialogs.ErrorDialog import io.element.android.libraries.designsystem.preview.ElementPreview import io.element.android.libraries.designsystem.preview.PreviewsDayNight import io.element.android.libraries.designsystem.theme.components.Button -import io.element.android.libraries.designsystem.theme.components.TopAppBar import io.element.android.libraries.designsystem.utils.CommonDrawables -@OptIn(ExperimentalMaterial3Api::class) @Composable fun SecureBackupEnableView( state: SecureBackupEnableState, @@ -51,20 +44,13 @@ fun SecureBackupEnableView( onDone() } } - HeaderFooterPage( + UserStoryFlowPage( modifier = modifier, - topBar = { - TopAppBar( - navigationIcon = { BackButton(onClick = onBackClicked) }, - title = {}, - ) - }, - header = { - HeaderContent() - }, - footer = { - BottomMenu(state = state) - } + canGoBack = true, + onBackClicked = onBackClicked, + title = stringResource(id = R.string.screen_chat_backup_key_backup_action_enable), + iconResourceId = CommonDrawables.ic_key, + buttons = { Buttons(state = state) } ) if (state.enableAction is Async.Failure) { ErrorDialog( @@ -75,31 +61,15 @@ fun SecureBackupEnableView( } @Composable -private fun HeaderContent( - modifier: Modifier = Modifier, -) { - IconTitleSubtitleMolecule( - modifier = modifier.padding(top = 0.dp), - iconResourceId = CommonDrawables.ic_key, - title = stringResource(id = R.string.screen_chat_backup_key_backup_action_enable), - subTitle = null, - ) -} - -@Composable -private fun BottomMenu( +private fun ColumnScope.Buttons( state: SecureBackupEnableState, ) { - ButtonColumnMolecule( - modifier = Modifier.padding(bottom = 20.dp) - ) { - Button( - text = stringResource(id = R.string.screen_chat_backup_key_backup_action_enable), - showProgress = state.enableAction.isLoading(), - modifier = Modifier.fillMaxWidth(), - onClick = { state.eventSink.invoke(SecureBackupEnableEvents.EnableBackup) } - ) - } + Button( + text = stringResource(id = R.string.screen_chat_backup_key_backup_action_enable), + showProgress = state.enableAction.isLoading(), + modifier = Modifier.fillMaxWidth(), + onClick = { state.eventSink.invoke(SecureBackupEnableEvents.EnableBackup) } + ) } @PreviewsDayNight diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/atomic/pages/UserStoryFlowPage.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/atomic/pages/UserStoryFlowPage.kt index 84eb00e71e..1970870fce 100644 --- a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/atomic/pages/UserStoryFlowPage.kt +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/atomic/pages/UserStoryFlowPage.kt @@ -50,10 +50,10 @@ import io.element.android.libraries.theme.ElementTheme fun UserStoryFlowPage( canGoBack: Boolean, onBackClicked: () -> Unit, - title: String, - subTitle: String?, iconResourceId: Int?, + title: String, modifier: Modifier = Modifier, + subTitle: String? = null, content: @Composable () -> Unit = {}, buttons: @Composable ColumnScope.() -> Unit = {}, ) {