Merge branch 'develop' into aleksandrs/6838_filter_sessions

# Conflicts:
#	RiotSwiftUI/Modules/UserSessions/UserOtherSessions/Test/Unit/UserOtherSessionsViewModelTests.swift
#	RiotSwiftUI/Modules/UserSessions/UserOtherSessions/UserOtherSessionsViewModel.swift
This commit is contained in:
Aleksandrs Proskurins
2022-10-12 10:58:04 +03:00
70 changed files with 1869 additions and 389 deletions

View File

@@ -28,7 +28,12 @@ class UserSessionsOverviewViewModel: UserSessionsOverviewViewModelType, UserSess
super.init(initialViewState: .init())
updateViewState(with: userSessionsOverviewService.overviewData)
userSessionsOverviewService.overviewDataPublisher.sink { [weak self] overviewData in
self?.updateViewState(with: overviewData)
}
.store(in: &cancellables)
updateViewState(with: userSessionsOverviewService.overviewDataPublisher.value)
}
// MARK: - Public
@@ -40,19 +45,19 @@ class UserSessionsOverviewViewModel: UserSessionsOverviewViewModelType, UserSess
case .verifyCurrentSession:
completion?(.verifyCurrentSession)
case .renameCurrentSession:
guard let currentSessionInfo = userSessionsOverviewService.overviewData.currentSession else {
guard let currentSessionInfo = userSessionsOverviewService.currentSession else {
assertionFailure("Missing current session")
return
}
completion?(.renameSession(currentSessionInfo))
case .logoutOfCurrentSession:
guard let currentSessionInfo = userSessionsOverviewService.overviewData.currentSession else {
guard let currentSessionInfo = userSessionsOverviewService.currentSession else {
assertionFailure("Missing current session")
return
}
completion?(.logoutOfSession(currentSessionInfo))
case .viewCurrentSessionDetails:
guard let currentSessionInfo = userSessionsOverviewService.overviewData.currentSession else {
guard let currentSessionInfo = userSessionsOverviewService.currentSession else {
assertionFailure("Missing current session")
return
}
@@ -91,19 +96,15 @@ class UserSessionsOverviewViewModel: UserSessionsOverviewViewModelType, UserSess
state.showLoadingIndicator = true
userSessionsOverviewService.updateOverviewData { [weak self] result in
guard let self = self else {
return
}
guard let self = self else { return }
self.state.showLoadingIndicator = false
switch result {
case .success(let overViewData):
self.updateViewState(with: overViewData)
case .failure(let error):
if case let .failure(error) = result {
// TODO:
break
}
// No need to consume .success as there's a subscription on the data.
}
}