mirror of
https://github.com/vector-im/element-ios.git
synced 2024-09-28 23:32:41 +00:00
Show bottom sheet in user other sessions
This commit is contained in:
parent
8ababcf52e
commit
55ab2ab14f
5 changed files with 42 additions and 14 deletions
|
@ -42,6 +42,7 @@ struct UserOtherSessionsViewState: BindableState, Equatable {
|
|||
struct UserOtherSessionsBindings: Equatable {
|
||||
var filter: UserOtherSessionsFilter
|
||||
var isEditModeEnabled: Bool
|
||||
var showBottomSheet: Bool = false
|
||||
}
|
||||
|
||||
enum UserOtherSessionsViewAction {
|
||||
|
|
|
@ -167,3 +167,33 @@ private extension UserOtherSessionsFilter {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
extension UserOtherSessionsViewState {
|
||||
var bottomSheetTitle: String {
|
||||
switch bindings.filter {
|
||||
case .unverified:
|
||||
return VectorL10n.userSessionUnverifiedSessionTitle
|
||||
case .verified:
|
||||
return VectorL10n.userSessionVerifiedSessionTitle
|
||||
case .inactive:
|
||||
return VectorL10n.userSessionInactiveSessionTitle
|
||||
case .all:
|
||||
return ""
|
||||
}
|
||||
}
|
||||
|
||||
var bottomSheetDescription: String {
|
||||
switch bindings.filter {
|
||||
case .unverified:
|
||||
return VectorL10n.userSessionUnverifiedSessionDescription
|
||||
case .verified:
|
||||
return VectorL10n.userSessionVerifiedSessionDescription
|
||||
case .inactive:
|
||||
return VectorL10n.userSessionInactiveSessionDescription
|
||||
case .all:
|
||||
return ""
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -33,7 +33,7 @@ struct UserOtherSessions: View {
|
|||
UserOtherSessionsHeaderView(
|
||||
viewData: viewModel.viewState.header,
|
||||
onLearnMoreAction: {
|
||||
|
||||
viewModel.showBottomSheet = true
|
||||
}
|
||||
)
|
||||
.frame(maxWidth: .infinity, alignment: .leading)
|
||||
|
@ -58,6 +58,11 @@ struct UserOtherSessions: View {
|
|||
}
|
||||
.navigationBarBackButtonHidden(viewModel.isEditModeEnabled)
|
||||
.accentColor(theme.colors.accent)
|
||||
.bottomSheet(isPresented: $viewModel.showBottomSheet) {
|
||||
InfoView(title: viewModel.viewState.bottomSheetTitle,
|
||||
descripion: viewModel.viewState.bottomSheetDescription,
|
||||
action: .init(text: VectorL10n.userSessionGotIt, action: { viewModel.showBottomSheet = false }))
|
||||
}
|
||||
}
|
||||
|
||||
private func noItemsView() -> some View {
|
||||
|
|
|
@ -101,20 +101,16 @@ class UserSessionOverviewViewModel: UserSessionOverviewViewModelType, UserSessio
|
|||
|
||||
extension UserSessionOverviewViewState {
|
||||
var bottomSheetTitle: String {
|
||||
cardViewData.verificationState.bottomSheetTitle(isSessionActive: nil)
|
||||
cardViewData.verificationState.bottomSheetTitle
|
||||
}
|
||||
|
||||
var bottomSheetDescription: String {
|
||||
cardViewData.verificationState.bottomSheetDescription(isSessionActive: nil)
|
||||
cardViewData.verificationState.bottomSheetDescription
|
||||
}
|
||||
}
|
||||
|
||||
private extension UserSessionInfo.VerificationState {
|
||||
func bottomSheetTitle(isSessionActive: Bool? = nil) -> String {
|
||||
guard isSessionActive != false else {
|
||||
return VectorL10n.userSessionInactiveSessionTitle
|
||||
}
|
||||
|
||||
var bottomSheetTitle: String {
|
||||
switch self {
|
||||
case .unverified:
|
||||
return VectorL10n.userSessionUnverifiedSessionTitle
|
||||
|
@ -125,11 +121,7 @@ private extension UserSessionInfo.VerificationState {
|
|||
}
|
||||
}
|
||||
|
||||
func bottomSheetDescription(isSessionActive: Bool?) -> String {
|
||||
guard isSessionActive != false else {
|
||||
return VectorL10n.userSessionInactiveSessionDescription
|
||||
}
|
||||
|
||||
var bottomSheetDescription: String {
|
||||
switch self {
|
||||
case .unverified:
|
||||
return VectorL10n.userSessionUnverifiedSessionDescription
|
||||
|
|
|
@ -85,7 +85,7 @@ struct UserSessionOverview: View {
|
|||
.bottomSheet(isPresented: $viewModel.showBottomSheet) {
|
||||
InfoView(title: viewModel.viewState.bottomSheetTitle,
|
||||
descripion: viewModel.viewState.bottomSheetDescription,
|
||||
action: .init(text: VectorL10n.userSessionGotIt, action: { $viewModel.showBottomSheet.wrappedValue = false }))
|
||||
action: .init(text: VectorL10n.userSessionGotIt, action: { viewModel.showBottomSheet = false }))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue