Files
element-x-ios/ElementX/Sources/Screens/MultiAccountAnnouncementScreen/MultiAccountAnnouncementScreenModels.swift
T
Mauro 60c11c8172 Add the multi-account announcement screen (#6263)
* Add the multi-account announcement screen

A self-sizing bottom sheet telling users they can now add multiple accounts, matching the designs. Close and Add account both report back to the coordinator; nothing presents it yet.

* Use the Localazy strings for the multi-account announcement

The copy now lives in Localazy as screen.multi_account_announcement.*, named after the screen rather than the room list.

* Apply review suggestions to the multi-account announcement

- Use an ElementNavigationStack with a toolbar close button, like RedactConfirmationView, instead of an overlaid glass button.

* Remove the large text preview from the multi-account announcement

Other sheets built the same way don't snapshot Dynamic Type sizes, and the iOS 26 bar material it would show isn't rendered in snapshots.

* Use TitleAndIcon for the multi-account announcement

TitleAndIcon now takes an attributed subtitle (#6274), so the sheet no longer needs to rebuild its layout by hand. The snapshots are unchanged.
2026-10-05 18:03:19 +02:00

32 lines
897 B
Swift

//
// Copyright 2026 Element Creations Ltd.
//
// SPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-Element-Commercial.
// Please see LICENSE files in the repository root for full details.
//
import SwiftUI
enum MultiAccountAnnouncementScreenViewModelAction {
case addAccount
case dismiss
}
struct MultiAccountAnnouncementScreenViewState: BindableState {
let description: AttributedString
init() {
let boldPlaceholder = "{bold}"
var description = AttributedString(L10n.screenMultiAccountAnnouncementDescription(boldPlaceholder))
var boldString = AttributedString("\(L10n.commonSettings) > \(L10n.screenSettingsAddAccount)")
boldString.bold()
description.replace(boldPlaceholder, with: boldString)
self.description = description
}
}
enum MultiAccountAnnouncementScreenViewAction {
case addAccount
case close
}