mirror of
https://gitlab.opencode.de/bwi/bundesmessenger/clients/bundesmessenger-ios.git
synced 2026-04-18 23:48:29 +02:00
Add the Use Case selection screen to the onboarding flow.
This commit is contained in:
@@ -42,18 +42,13 @@ struct AnalyticsPromptViewState: BindableState {
|
||||
/// A collection of strings for the UI that need to be created in
|
||||
/// the coordinator or mocked in the RiotSwiftUI target.
|
||||
protocol AnalyticsPromptStringsProtocol {
|
||||
var appDisplayName: String { get }
|
||||
|
||||
var point1: NSAttributedString { get }
|
||||
var point2: NSAttributedString { get }
|
||||
|
||||
var termsNewUser: NSAttributedString { get }
|
||||
var termsUpgrade: NSAttributedString { get }
|
||||
}
|
||||
|
||||
enum AnalyticsPromptType {
|
||||
case newUser(termsString: NSAttributedString)
|
||||
case upgrade(termsString: NSAttributedString)
|
||||
case newUser
|
||||
case upgrade
|
||||
}
|
||||
|
||||
extension AnalyticsPromptType {
|
||||
@@ -67,11 +62,23 @@ extension AnalyticsPromptType {
|
||||
}
|
||||
}
|
||||
|
||||
/// The terms string that should be displayed.
|
||||
var termsStrings: NSAttributedString {
|
||||
/// The main part of the terms string that should be displayed.
|
||||
var mainTermsString: String {
|
||||
switch self {
|
||||
case .newUser(let termsString), .upgrade(let termsString):
|
||||
return termsString
|
||||
case .newUser:
|
||||
return VectorL10n.analyticsPromptTermsNewUser("%@")
|
||||
case .upgrade:
|
||||
return VectorL10n.analyticsPromptTermsUpgrade("%@")
|
||||
}
|
||||
}
|
||||
|
||||
/// The tappable part of the terms string that should be displayed.
|
||||
var termsLinkString: String {
|
||||
switch self {
|
||||
case .newUser:
|
||||
return VectorL10n.analyticsPromptTermsLinkNewUser
|
||||
case .upgrade:
|
||||
return VectorL10n.analyticsPromptTermsLinkUpgrade
|
||||
}
|
||||
}
|
||||
|
||||
@@ -96,15 +103,7 @@ extension AnalyticsPromptType {
|
||||
}
|
||||
}
|
||||
|
||||
extension AnalyticsPromptType: CaseIterable {
|
||||
static var allCases: [AnalyticsPromptType] {
|
||||
let strings = MockAnalyticsPromptStrings()
|
||||
return [
|
||||
.newUser(termsString: strings.termsNewUser),
|
||||
.upgrade(termsString: strings.termsUpgrade)
|
||||
]
|
||||
}
|
||||
}
|
||||
extension AnalyticsPromptType: CaseIterable { }
|
||||
|
||||
extension AnalyticsPromptType: Identifiable {
|
||||
var id: String {
|
||||
|
||||
Reference in New Issue
Block a user