Add show/hide ip persistency

This commit is contained in:
Alfonso Grillo
2022-11-02 17:51:26 +01:00
parent d62f11a655
commit 39128bf281
4 changed files with 14 additions and 9 deletions
@@ -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
}
@@ -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
}
}
@@ -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)) })
}