mirror of
https://gitlab.opencode.de/bwi/bundesmessenger/clients/bundesmessenger-ios.git
synced 2026-04-24 02:22:44 +02:00
Add show/hide ip persistency
This commit is contained in:
+2
-5
@@ -43,10 +43,6 @@ enum UserSessionsOverviewViewModelResult: Equatable {
|
||||
|
||||
// MARK: View
|
||||
|
||||
struct UserSessionsOverviewViewBindings {
|
||||
var showLocationInfo = false
|
||||
}
|
||||
|
||||
struct UserSessionsOverviewViewState: BindableState {
|
||||
var currentSessionViewData: UserSessionCardViewData?
|
||||
var unverifiedSessionsViewData = [UserSessionListItemViewData]()
|
||||
@@ -54,7 +50,7 @@ struct UserSessionsOverviewViewState: BindableState {
|
||||
var otherSessionsViewData = [UserSessionListItemViewData]()
|
||||
var showLoadingIndicator = false
|
||||
var linkDeviceButtonVisible = false
|
||||
var bindings: UserSessionsOverviewViewBindings = .init()
|
||||
var showLocationInfo = RiotSettings.shared.showIPAddressesInSessionsManager
|
||||
}
|
||||
|
||||
enum UserSessionsOverviewViewAction {
|
||||
@@ -69,4 +65,5 @@ enum UserSessionsOverviewViewAction {
|
||||
case tapUserSession(_ sessionId: String)
|
||||
case linkDevice
|
||||
case logoutOtherSessions
|
||||
case showLocationInfo
|
||||
}
|
||||
|
||||
+4
@@ -78,6 +78,10 @@ class UserSessionsOverviewViewModel: UserSessionsOverviewViewModelType, UserSess
|
||||
completion?(.linkDevice)
|
||||
case .logoutOtherSessions:
|
||||
completion?(.logoutFromUserSessions(sessionInfos: userSessionsOverviewService.otherSessions))
|
||||
case .showLocationInfo:
|
||||
let newShowLocationInfo = !RiotSettings.shared.showIPAddressesInSessionsManager
|
||||
RiotSettings.shared.showIPAddressesInSessionsManager = newShowLocationInfo
|
||||
state.showLocationInfo = newShowLocationInfo
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+4
-4
@@ -96,7 +96,7 @@ struct UserSessionsOverview: View {
|
||||
viewModel.send(viewAction: .verifyCurrentSession)
|
||||
}, onViewDetailsAction: { _ in
|
||||
viewModel.send(viewAction: .viewCurrentSessionDetails)
|
||||
}, showLocationInformations: viewModel.showLocationInfo)
|
||||
}, showLocationInformations: viewModel.viewState.showLocationInfo)
|
||||
} header: {
|
||||
HStack(alignment: .firstTextBaseline) {
|
||||
Text(VectorL10n.userSessionsOverviewCurrentSessionSectionTitle)
|
||||
@@ -143,9 +143,9 @@ struct UserSessionsOverview: View {
|
||||
private var otherSessionsMenu: some View {
|
||||
Menu {
|
||||
Button {
|
||||
viewModel.showLocationInfo.toggle()
|
||||
viewModel.send(viewAction: .showLocationInfo)
|
||||
} label: {
|
||||
Label(showLocationInfo: viewModel.showLocationInfo)
|
||||
Label(showLocationInfo: viewModel.viewState.showLocationInfo)
|
||||
}
|
||||
|
||||
signOutButton
|
||||
@@ -166,7 +166,7 @@ struct UserSessionsOverview: View {
|
||||
LazyVStack(spacing: 0) {
|
||||
ForEach(viewModel.viewState.otherSessionsViewData.prefix(maxOtherSessionsToDisplay)) { viewData in
|
||||
UserSessionListItem(viewData: viewData,
|
||||
showsLocationInfo: viewModel.showLocationInfo,
|
||||
showsLocationInfo: viewModel.viewState.showLocationInfo,
|
||||
isSeparatorHidden: viewData == viewModel.viewState.otherSessionsViewData.last,
|
||||
onBackgroundTap: { sessionId in viewModel.send(viewAction: .tapUserSession(sessionId)) })
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user