mirror of
https://github.com/vector-im/element-ios.git
synced 2024-09-28 23:32:41 +00:00
Fix info in UserSessionCardView
This commit is contained in:
parent
217d807655
commit
2dd69d17a3
3 changed files with 22 additions and 13 deletions
|
@ -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)
|
||||
|
|
|
@ -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 {
|
||||
|
|
|
@ -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)
|
||||
|
|
Loading…
Reference in a new issue