Add “learn more” button in UserOtherSessions

This commit is contained in:
Alfonso Grillo 2022-10-26 16:11:21 +02:00
parent c6342a3ea2
commit 8ababcf52e
3 changed files with 20 additions and 12 deletions

View file

@ -119,15 +119,15 @@ private extension UserOtherSessionsFilter {
iconName: nil) iconName: nil)
case .inactive: case .inactive:
return UserOtherSessionsHeaderViewData(title: VectorL10n.userOtherSessionFilterMenuInactive, return UserOtherSessionsHeaderViewData(title: VectorL10n.userOtherSessionFilterMenuInactive,
subtitle: VectorL10n.userSessionsOverviewSecurityRecommendationsInactiveInfo, subtitle: VectorL10n.userSessionsOverviewSecurityRecommendationsInactiveInfo + " %@",
iconName: Asset.Images.userOtherSessionsInactive.name) iconName: Asset.Images.userOtherSessionsInactive.name)
case .unverified: case .unverified:
return UserOtherSessionsHeaderViewData(title: VectorL10n.userSessionUnverifiedShort, return UserOtherSessionsHeaderViewData(title: VectorL10n.userSessionUnverifiedShort,
subtitle: VectorL10n.userOtherSessionUnverifiedSessionsHeaderSubtitle, subtitle: VectorL10n.userOtherSessionUnverifiedSessionsHeaderSubtitle + " %@",
iconName: Asset.Images.userOtherSessionsUnverified.name) iconName: Asset.Images.userOtherSessionsUnverified.name)
case .verified: case .verified:
return UserOtherSessionsHeaderViewData(title: VectorL10n.userOtherSessionFilterMenuVerified, return UserOtherSessionsHeaderViewData(title: VectorL10n.userOtherSessionFilterMenuVerified,
subtitle: VectorL10n.userOtherSessionVerifiedSessionsHeaderSubtitle, subtitle: VectorL10n.userOtherSessionVerifiedSessionsHeaderSubtitle + " %@",
iconName: Asset.Images.userOtherSessionsVerified.name) iconName: Asset.Images.userOtherSessionsVerified.name)
} }
} }

View file

@ -30,9 +30,14 @@ struct UserOtherSessions: View {
itemsView() itemsView()
} }
} header: { } header: {
UserOtherSessionsHeaderView(viewData: viewModel.viewState.header) UserOtherSessionsHeaderView(
.frame(maxWidth: .infinity, alignment: .leading) viewData: viewModel.viewState.header,
.padding(.top, 24.0) onLearnMoreAction: {
}
)
.frame(maxWidth: .infinity, alignment: .leading)
.padding(.top, 24.0)
} }
} }
.onChange(of: viewModel.isEditModeEnabled) { _ in .onChange(of: viewModel.isEditModeEnabled) { _ in

View file

@ -17,9 +17,9 @@
import SwiftUI import SwiftUI
struct UserOtherSessionsHeaderViewData: Hashable { struct UserOtherSessionsHeaderViewData: Hashable {
var title: String? let title: String?
let subtitle: String let subtitle: String
var iconName: String? let iconName: String?
} }
struct UserOtherSessionsHeaderView: View { struct UserOtherSessionsHeaderView: View {
@ -30,6 +30,7 @@ struct UserOtherSessionsHeaderView: View {
@Environment(\.theme) private var theme @Environment(\.theme) private var theme
let viewData: UserOtherSessionsHeaderViewData let viewData: UserOtherSessionsHeaderViewData
var onLearnMoreAction: (() -> Void)?
var body: some View { var body: some View {
HStack(alignment: .top, spacing: 0) { HStack(alignment: .top, spacing: 0) {
@ -48,10 +49,12 @@ struct UserOtherSessionsHeaderView: View {
.foregroundColor(theme.colors.primaryContent) .foregroundColor(theme.colors.primaryContent)
.padding(.vertical, 9.0) .padding(.vertical, 9.0)
} }
Text(viewData.subtitle) InlineTextButton(viewData.subtitle, tappableText: VectorL10n.userSessionLearnMore) {
.font(theme.fonts.footnote) onLearnMoreAction?()
.foregroundColor(theme.colors.secondaryContent) }
.padding(.bottom, 20.0) .font(theme.fonts.footnote)
.foregroundColor(theme.colors.secondaryContent)
.padding(.bottom, 20.0)
}) })
} }
.frame(maxWidth: .infinity, alignment: .leading) .frame(maxWidth: .infinity, alignment: .leading)