From ecd3fc7ed1d99fb7807657920d7066078b748398 Mon Sep 17 00:00:00 2001 From: Benoit Marty Date: Wed, 6 Aug 2025 14:40:37 +0200 Subject: [PATCH] Add missing preview on LoginModeView --- .../impl/error/ChangeServerErrorProvider.kt | 32 +++++++++++++++++++ .../login/impl/login/LoginModeView.kt | 19 +++++++++++ 2 files changed, 51 insertions(+) create mode 100644 features/login/impl/src/main/kotlin/io/element/android/features/login/impl/error/ChangeServerErrorProvider.kt diff --git a/features/login/impl/src/main/kotlin/io/element/android/features/login/impl/error/ChangeServerErrorProvider.kt b/features/login/impl/src/main/kotlin/io/element/android/features/login/impl/error/ChangeServerErrorProvider.kt new file mode 100644 index 0000000000..333347851a --- /dev/null +++ b/features/login/impl/src/main/kotlin/io/element/android/features/login/impl/error/ChangeServerErrorProvider.kt @@ -0,0 +1,32 @@ +/* + * Copyright 2025 New Vector Ltd. + * + * SPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-Element-Commercial + * Please see LICENSE files in the repository root for full details. + */ + +package io.element.android.features.login.impl.error + +import androidx.compose.ui.tooling.preview.PreviewParameterProvider +import io.element.android.features.login.impl.R + +class ChangeServerErrorProvider : PreviewParameterProvider { + override val values: Sequence + get() = sequenceOf( + ChangeServerError.Error( + messageId = R.string.screen_change_server_error_invalid_homeserver, + ), + ChangeServerError.Error( + messageStr = "An error description", + ), + ChangeServerError.NeedElementPro( + unauthorisedAccountProviderTitle = "element.io", + applicationId = "io.element.enterprise", + ), + ChangeServerError.UnauthorizedAccountProvider( + unauthorisedAccountProviderTitle = "element.io", + authorisedAccountProviderTitles = listOf("provider.org", "provider.io"), + ), + ChangeServerError.SlidingSyncAlert, + ) +} diff --git a/features/login/impl/src/main/kotlin/io/element/android/features/login/impl/login/LoginModeView.kt b/features/login/impl/src/main/kotlin/io/element/android/features/login/impl/login/LoginModeView.kt index 9a2183b1f7..73127281bc 100644 --- a/features/login/impl/src/main/kotlin/io/element/android/features/login/impl/login/LoginModeView.kt +++ b/features/login/impl/src/main/kotlin/io/element/android/features/login/impl/login/LoginModeView.kt @@ -10,14 +10,18 @@ package io.element.android.features.login.impl.login import androidx.compose.runtime.Composable import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.res.stringResource +import androidx.compose.ui.tooling.preview.PreviewParameter import io.element.android.features.login.impl.R import io.element.android.features.login.impl.dialogs.SlidingSyncNotSupportedDialog import io.element.android.features.login.impl.error.ChangeServerError +import io.element.android.features.login.impl.error.ChangeServerErrorProvider import io.element.android.features.login.impl.screens.createaccount.AccountCreationNotSupported import io.element.android.libraries.androidutils.system.openGooglePlay import io.element.android.libraries.architecture.AsyncData import io.element.android.libraries.designsystem.components.dialogs.ConfirmationDialog 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.LocalBuildMeta import io.element.android.libraries.matrix.api.auth.OidcDetails import io.element.android.libraries.ui.strings.CommonStrings @@ -106,3 +110,18 @@ fun LoginModeView( AsyncData.Uninitialized -> Unit } } + +@PreviewsDayNight +@Composable +internal fun LoginModeViewPreview(@PreviewParameter(ChangeServerErrorProvider::class) error: ChangeServerError) { + ElementPreview { + LoginModeView( + loginMode = AsyncData.Failure(error), + onClearError = {}, + onLearnMoreClick = {}, + onOidcDetails = {}, + onNeedLoginPassword = {}, + onCreateAccountContinue = {} + ) + } +}