Add sunset banners guiding users to install Element X when registering against a server with MAS. (#7890)

This commit is contained in:
Doug
2025-01-10 13:22:03 +00:00
committed by GitHub
parent 7da4b1c139
commit ee2073a8e3
33 changed files with 498 additions and 60 deletions
@@ -70,14 +70,10 @@ struct AuthenticationServerSelectionScreen: View {
var serverForm: some View {
VStack(alignment: .leading, spacing: 12) {
VStack(spacing: 8) {
if #available(iOS 15.0, *) {
textField
.onSubmit(submit)
} else {
textField
}
textField
.onSubmit(submit)
if let errorMessage = viewModel.viewState.footerErrorMessage {
if case let .message(errorMessage) = viewModel.viewState.footerError {
Text(errorMessage)
.font(theme.fonts.footnote)
.foregroundColor(textFieldFooterColor)
@@ -86,6 +82,8 @@ struct AuthenticationServerSelectionScreen: View {
}
}
sunsetBanners
Button(action: submit) {
Text(viewModel.viewState.buttonTitle)
}
@@ -95,7 +93,6 @@ struct AuthenticationServerSelectionScreen: View {
}
}
/// The text field, extracted for iOS 15 modifiers to be applied.
var textField: some View {
TextField(VectorL10n.authenticationServerSelectionServerUrl, text: $viewModel.homeserverAddress) {
isEditingTextField = $0
@@ -109,6 +106,23 @@ struct AuthenticationServerSelectionScreen: View {
.accessibilityIdentifier("addressTextField")
}
@ViewBuilder
var sunsetBanners: some View {
if viewModel.viewState.footerError == .sunsetBanner, let replacementApp = BuildSettings.replacementApp {
VStack(spacing: 16) {
SunsetOIDCRegistrationBanner(homeserverAddress: viewModel.homeserverAddress,
replacementApp: replacementApp)
SunsetDownloadBanner(replacementApp: replacementApp) {
viewModel.send(viewAction: .downloadReplacementApp(replacementApp))
}
}
.padding(.vertical, 4)
.padding(.bottom, 16)
.accessibilityIdentifier("sunsetBanners")
}
}
@ToolbarContentBuilder
var toolbar: some ToolbarContent {
ToolbarItem(placement: .cancellationAction) {