mirror of
https://gitlab.opencode.de/bwi/bundesmessenger/clients/bundesmessenger-ios.git
synced 2026-04-19 08:03:50 +02:00
Device Manager: Rename Session (#6826)
* Publish the user sessions overview data. * Add UserSessionName screen. * Update logout action to match Figma more closely.
This commit is contained in:
+23
-1
@@ -14,6 +14,7 @@
|
||||
// limitations under the License.
|
||||
//
|
||||
|
||||
import Combine
|
||||
import SwiftUI
|
||||
|
||||
typealias UserSessionOverviewViewModelType = StateStoreViewModel<UserSessionOverviewViewState, UserSessionOverviewViewAction>
|
||||
@@ -26,7 +27,13 @@ class UserSessionOverviewViewModel: UserSessionOverviewViewModelType, UserSessio
|
||||
|
||||
// MARK: - Setup
|
||||
|
||||
init(sessionInfo: UserSessionInfo, service: UserSessionOverviewServiceProtocol) {
|
||||
init(sessionInfo: UserSessionInfo,
|
||||
service: UserSessionOverviewServiceProtocol,
|
||||
sessionsOverviewDataPublisher: CurrentValueSubject<UserSessionsOverviewData, Never> = .init(.init(currentSession: nil,
|
||||
unverifiedSessions: [],
|
||||
inactiveSessions: [],
|
||||
otherSessions: [],
|
||||
linkDeviceEnabled: false))) {
|
||||
self.sessionInfo = sessionInfo
|
||||
self.service = service
|
||||
|
||||
@@ -39,6 +46,21 @@ class UserSessionOverviewViewModel: UserSessionOverviewViewModelType, UserSessio
|
||||
super.init(initialViewState: state)
|
||||
|
||||
startObservingService()
|
||||
|
||||
sessionsOverviewDataPublisher.sink { [weak self] overviewData in
|
||||
guard let self = self else { return }
|
||||
|
||||
var updatedInfo: UserSessionInfo?
|
||||
if let currentSession = overviewData.currentSession, currentSession.id == sessionInfo.id {
|
||||
updatedInfo = currentSession
|
||||
} else if let otherSession = overviewData.otherSessions.first(where: { $0.id == sessionInfo.id }) {
|
||||
updatedInfo = otherSession
|
||||
}
|
||||
|
||||
guard let updatedInfo = updatedInfo else { return }
|
||||
self.state.cardViewData = UserSessionCardViewData(sessionInfo: updatedInfo)
|
||||
}
|
||||
.store(in: &cancellables)
|
||||
}
|
||||
|
||||
private func startObservingService() {
|
||||
|
||||
Reference in New Issue
Block a user