mirror of
https://gitlab.opencode.de/bwi/bundesmessenger/clients/bundesmessenger-ios.git
synced 2026-04-21 00:52:43 +02:00
Refine settings logic
This commit is contained in:
+2
-5
@@ -36,17 +36,13 @@ enum UserSessionOverviewViewModelResult: Equatable {
|
||||
|
||||
// MARK: View
|
||||
|
||||
struct UserSessionOverviewViewBindings {
|
||||
var showLocationInfo = false
|
||||
}
|
||||
|
||||
struct UserSessionOverviewViewState: BindableState {
|
||||
var cardViewData: UserSessionCardViewData
|
||||
let isCurrentSession: Bool
|
||||
var isPusherEnabled: Bool?
|
||||
var remotelyTogglingPushersAvailable: Bool
|
||||
var showLoadingIndicator: Bool
|
||||
var bindings: UserSessionOverviewViewBindings = .init()
|
||||
var showLocationInfo = RiotSettings.shared.showIPAddressesInSessionsManager
|
||||
}
|
||||
|
||||
enum UserSessionOverviewViewAction {
|
||||
@@ -55,4 +51,5 @@ enum UserSessionOverviewViewAction {
|
||||
case togglePushNotifications
|
||||
case renameSession
|
||||
case logoutOfSession
|
||||
case showLocationInfo
|
||||
}
|
||||
|
||||
+3
@@ -95,6 +95,9 @@ class UserSessionOverviewViewModel: UserSessionOverviewViewModelType, UserSessio
|
||||
completion?(.renameSession(sessionInfo))
|
||||
case .logoutOfSession:
|
||||
completion?(.logoutOfSession(sessionInfo))
|
||||
case .showLocationInfo:
|
||||
RiotSettings.shared.showIPAddressesInSessionsManager.toggle()
|
||||
state.showLocationInfo = RiotSettings.shared.showIPAddressesInSessionsManager
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+11
-8
@@ -23,12 +23,15 @@ struct UserSessionOverview: View {
|
||||
|
||||
var body: some View {
|
||||
ScrollView {
|
||||
UserSessionCardView(viewData: viewModel.viewState.cardViewData, onVerifyAction: { _ in
|
||||
viewModel.send(viewAction: .verifySession)
|
||||
},
|
||||
onViewDetailsAction: { _ in
|
||||
viewModel.send(viewAction: .viewSessionDetails)
|
||||
}, showLocationInformations: viewModel.showLocationInfo)
|
||||
UserSessionCardView(
|
||||
viewData: viewModel.viewState.cardViewData, onVerifyAction: { _ in
|
||||
viewModel.send(viewAction: .verifySession)
|
||||
},
|
||||
onViewDetailsAction: { _ in
|
||||
viewModel.send(viewAction: .viewSessionDetails)
|
||||
},
|
||||
showLocationInformations: viewModel.viewState.showLocationInfo
|
||||
)
|
||||
.padding(16)
|
||||
SwiftUI.Section {
|
||||
UserSessionOverviewItem(title: VectorL10n.userSessionOverviewSessionDetailsButtonTitle,
|
||||
@@ -71,9 +74,9 @@ struct UserSessionOverview: View {
|
||||
|
||||
if viewModel.viewState.isCurrentSession == false {
|
||||
Button {
|
||||
viewModel.showLocationInfo.toggle()
|
||||
viewModel.send(viewAction: .showLocationInfo)
|
||||
} label: {
|
||||
Label(showLocationInfo: viewModel.showLocationInfo)
|
||||
Label(showLocationInfo: viewModel.viewState.showLocationInfo)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user