Fix info in UserSessionCardView

This commit is contained in:
Alfonso Grillo 2022-12-15 18:11:44 +01:00
parent 217d807655
commit 2dd69d17a3
3 changed files with 22 additions and 13 deletions

View file

@ -30,9 +30,16 @@ struct UserSessionCardView: View {
RoundedRectangle(cornerRadius: 8)
}
enum DisplayMode {
case compact
case extended
}
let showLocationInformations: Bool
let displayMode: DisplayMode
private var showExtraInformations: Bool {
viewData.isCurrentSessionDisplayMode == false && (viewData.lastActivityDateString.isEmptyOrNil == false || ipText.isEmptyOrNil == false)
displayMode == .extended && (viewData.lastActivityDateString.isEmptyOrNil == false || ipText.isEmptyOrNil == false)
}
var body: some View {
@ -93,7 +100,7 @@ struct UserSessionCardView: View {
.accessibilityIdentifier("userSessionCardVerifyButton")
}
if viewData.isCurrentSessionDisplayMode {
if viewData.isCurrentSessionDisplayMode && displayMode == .compact {
Text(VectorL10n.userSessionViewDetails)
.font(theme.fonts.body)
.foregroundColor(theme.colors.accent)
@ -124,8 +131,9 @@ struct UserSessionCardViewPreview: View {
@Environment(\.theme) var theme: ThemeSwiftUI
let viewData: UserSessionCardViewData
let displayMode: UserSessionCardView.DisplayMode
init(isCurrent: Bool = false, verificationState: UserSessionInfo.VerificationState = .unverified) {
init(isCurrent: Bool = false, verificationState: UserSessionInfo.VerificationState = .unverified, displayMode: UserSessionCardView.DisplayMode = .extended) {
let sessionInfo = UserSessionInfo(id: "alice",
name: "iOS",
deviceType: .mobile,
@ -143,11 +151,12 @@ struct UserSessionCardViewPreview: View {
isActive: true,
isCurrent: isCurrent)
viewData = UserSessionCardViewData(sessionInfo: sessionInfo)
self.displayMode = displayMode
}
var body: some View {
VStack {
UserSessionCardView(viewData: viewData, showLocationInformations: true)
UserSessionCardView(viewData: viewData, showLocationInformations: true, displayMode: displayMode)
}
.frame(maxWidth: .infinity)
.background(theme.colors.system)
@ -158,7 +167,8 @@ struct UserSessionCardViewPreview: View {
struct UserSessionCardView_Previews: PreviewProvider {
static var previews: some View {
Group {
UserSessionCardViewPreview(isCurrent: true).theme(.light).preferredColorScheme(.light)
UserSessionCardViewPreview(isCurrent: true, displayMode: .compact).theme(.light).preferredColorScheme(.light)
UserSessionCardViewPreview(isCurrent: true, displayMode: .extended).theme(.light).preferredColorScheme(.light)
UserSessionCardViewPreview(isCurrent: true).theme(.dark).preferredColorScheme(.dark)
UserSessionCardViewPreview().theme(.light).preferredColorScheme(.light)
UserSessionCardViewPreview().theme(.dark).preferredColorScheme(.dark)

View file

@ -34,7 +34,8 @@ struct UserSessionOverview: View {
onLearnMoreAction: {
viewModel.send(viewAction: .viewSessionInfo)
},
showLocationInformations: viewModel.viewState.showLocationInfo
showLocationInformations: viewModel.viewState.showLocationInfo,
displayMode: .extended
)
.padding(16)
@ -77,12 +78,10 @@ struct UserSessionOverview: View {
}
.accessibilityIdentifier(VectorL10n.manageSessionRename)
if viewModel.viewState.isCurrentSession == false {
Button {
viewModel.send(viewAction: .showLocationInfo)
} label: {
Label(showLocationInfo: viewModel.viewState.showLocationInfo)
}
Button {
viewModel.send(viewAction: .showLocationInfo)
} label: {
Label(showLocationInfo: viewModel.viewState.showLocationInfo)
}
}
DestructiveButton {

View file

@ -96,7 +96,7 @@ struct UserSessionsOverview: View {
viewModel.send(viewAction: .verifyCurrentSession)
}, onViewDetailsAction: { _ in
viewModel.send(viewAction: .viewCurrentSessionDetails)
}, showLocationInformations: viewModel.viewState.showLocationInfo)
}, showLocationInformations: viewModel.viewState.showLocationInfo, displayMode: .compact)
} header: {
HStack(alignment: .firstTextBaseline) {
Text(VectorL10n.userSessionsOverviewCurrentSessionSectionTitle)