|
|
@ -20,19 +20,17 @@ import androidx.compose.foundation.layout.fillMaxWidth |
|
|
|
import androidx.compose.foundation.layout.padding |
|
|
|
import androidx.compose.foundation.layout.padding |
|
|
|
import androidx.compose.material3.ExperimentalMaterial3Api |
|
|
|
import androidx.compose.material3.ExperimentalMaterial3Api |
|
|
|
import androidx.compose.runtime.Composable |
|
|
|
import androidx.compose.runtime.Composable |
|
|
|
import androidx.compose.runtime.LaunchedEffect |
|
|
|
|
|
|
|
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 androidx.compose.ui.unit.dp |
|
|
|
import androidx.compose.ui.unit.dp |
|
|
|
import io.element.android.features.securebackup.impl.R |
|
|
|
import io.element.android.features.securebackup.impl.R |
|
|
|
import io.element.android.features.securebackup.impl.setup.views.RecoveryKeyView |
|
|
|
import io.element.android.features.securebackup.impl.setup.views.RecoveryKeyView |
|
|
|
import io.element.android.libraries.architecture.Async |
|
|
|
|
|
|
|
import io.element.android.libraries.designsystem.atomic.molecules.ButtonColumnMolecule |
|
|
|
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.molecules.IconTitleSubtitleMolecule |
|
|
|
import io.element.android.libraries.designsystem.atomic.pages.HeaderFooterPage |
|
|
|
import io.element.android.libraries.designsystem.atomic.pages.HeaderFooterPage |
|
|
|
|
|
|
|
import io.element.android.libraries.designsystem.components.async.AsyncView |
|
|
|
import io.element.android.libraries.designsystem.components.button.BackButton |
|
|
|
import io.element.android.libraries.designsystem.components.button.BackButton |
|
|
|
import io.element.android.libraries.designsystem.components.dialogs.ErrorDialog |
|
|
|
|
|
|
|
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.preview.PreviewsDayNight |
|
|
|
import io.element.android.libraries.designsystem.theme.components.Button |
|
|
|
import io.element.android.libraries.designsystem.theme.components.Button |
|
|
@ -48,19 +46,12 @@ fun SecureBackupEnterRecoveryKeyView( |
|
|
|
onBackClicked: () -> Unit, |
|
|
|
onBackClicked: () -> Unit, |
|
|
|
modifier: Modifier = Modifier, |
|
|
|
modifier: Modifier = Modifier, |
|
|
|
) { |
|
|
|
) { |
|
|
|
when (state.submitAction) { |
|
|
|
AsyncView( |
|
|
|
Async.Uninitialized -> Unit |
|
|
|
async = state.submitAction, |
|
|
|
is Async.Failure -> ErrorDialog( |
|
|
|
onSuccess = { onDone() }, |
|
|
|
content = state.submitAction.error.message ?: state.submitAction.error.toString(), |
|
|
|
showProgressDialog = false, |
|
|
|
onDismiss = { |
|
|
|
onErrorDismiss = { state.eventSink(SecureBackupEnterRecoveryKeyEvents.ClearDialog) }, |
|
|
|
state.eventSink(SecureBackupEnterRecoveryKeyEvents.ClearDialog) |
|
|
|
) |
|
|
|
} |
|
|
|
|
|
|
|
) |
|
|
|
|
|
|
|
is Async.Loading -> Unit |
|
|
|
|
|
|
|
is Async.Success -> LaunchedEffect(state.submitAction) { |
|
|
|
|
|
|
|
onDone() |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
HeaderFooterPage( |
|
|
|
HeaderFooterPage( |
|
|
|
modifier = modifier, |
|
|
|
modifier = modifier, |
|
|
|