mirror of
https://gitlab.opencode.de/bwi/bundesmessenger/clients/bundesmessenger-ios.git
synced 2026-04-26 19:34:25 +02:00
User other sessions screen template
This commit is contained in:
+6
-17
@@ -52,16 +52,12 @@ final class UserSessionsOverviewCoordinator: Coordinator, Presentable {
|
||||
MXLog.debug("[UserSessionsOverviewCoordinator] UserSessionsOverviewViewModel did complete with result: \(result).")
|
||||
|
||||
switch result {
|
||||
case .showAllUnverifiedSessions:
|
||||
self.showAllUnverifiedSessions()
|
||||
case .showAllInactiveSessions:
|
||||
self.showAllInactiveSessions()
|
||||
case let .showOtherSessions(sessions: sessions, filter: filter):
|
||||
self.showOtherSessions(sessions: sessions, filterBy: filter)
|
||||
case .verifyCurrentSession:
|
||||
self.startVerifyCurrentSession()
|
||||
case let .showCurrentSessionOverview(session):
|
||||
self.showCurrentSessionOverview(session: session)
|
||||
case .showAllOtherSessions:
|
||||
self.showAllOtherSessions()
|
||||
case let .showUserSessionOverview(session):
|
||||
self.showUserSessionOverview(session: session)
|
||||
}
|
||||
@@ -87,16 +83,12 @@ final class UserSessionsOverviewCoordinator: Coordinator, Presentable {
|
||||
loadingIndicator = nil
|
||||
}
|
||||
|
||||
private func showAllUnverifiedSessions() {
|
||||
// TODO:
|
||||
}
|
||||
|
||||
private func showAllInactiveSessions() {
|
||||
// TODO:
|
||||
private func showOtherSessions(sessions: [UserSessionInfo], filterBy filter: OtherUserSessionsFilter) {
|
||||
completion?(.openOtherSessions(sessions: sessions, filter: filter))
|
||||
}
|
||||
|
||||
private func startVerifyCurrentSession() {
|
||||
// TODO:
|
||||
// TODO:openSessionOverview
|
||||
}
|
||||
|
||||
private func showCurrentSessionOverview(session: UserSessionInfo) {
|
||||
@@ -106,8 +98,5 @@ final class UserSessionsOverviewCoordinator: Coordinator, Presentable {
|
||||
private func showUserSessionOverview(session: UserSessionInfo) {
|
||||
completion?(.openSessionOverview(session: session))
|
||||
}
|
||||
|
||||
private func showAllOtherSessions() {
|
||||
// TODO:
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
+2
-3
@@ -20,16 +20,15 @@ import Foundation
|
||||
|
||||
enum UserSessionsOverviewCoordinatorResult {
|
||||
case openSessionOverview(session: UserSessionInfo)
|
||||
case openOtherSessions(sessions: [UserSessionInfo], filter: OtherUserSessionsFilter)
|
||||
}
|
||||
|
||||
// MARK: View model
|
||||
|
||||
enum UserSessionsOverviewViewModelResult {
|
||||
case showAllUnverifiedSessions
|
||||
case showAllInactiveSessions
|
||||
case showOtherSessions(sessions: [UserSessionInfo], filter: OtherUserSessionsFilter)
|
||||
case verifyCurrentSession
|
||||
case showCurrentSessionOverview(session: UserSessionInfo)
|
||||
case showAllOtherSessions
|
||||
case showUserSessionOverview(session: UserSessionInfo)
|
||||
}
|
||||
|
||||
|
||||
+9
-4
@@ -46,11 +46,11 @@ class UserSessionsOverviewViewModel: UserSessionsOverviewViewModelType, UserSess
|
||||
}
|
||||
completion?(.showCurrentSessionOverview(session: currentSessionInfo))
|
||||
case .viewAllUnverifiedSessions:
|
||||
completion?(.showAllUnverifiedSessions)
|
||||
showSessions(filteredBy: .unverified)
|
||||
case .viewAllInactiveSessions:
|
||||
completion?(.showAllInactiveSessions)
|
||||
showSessions(filteredBy: .inactive)
|
||||
case .viewAllOtherSessions:
|
||||
completion?(.showAllOtherSessions)
|
||||
showSessions(filteredBy: .all)
|
||||
case .tapUserSession(let sessionId):
|
||||
guard let session = userSessionsOverviewService.sessionForIdentifier(sessionId) else {
|
||||
assertionFailure("Missing session info")
|
||||
@@ -91,9 +91,14 @@ class UserSessionsOverviewViewModel: UserSessionsOverviewViewModelType, UserSess
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private func showSessions(filteredBy filter: OtherUserSessionsFilter) {
|
||||
completion?(.showOtherSessions(sessions: userSessionsOverviewService.overviewData.otherSessions,
|
||||
filter: filter))
|
||||
}
|
||||
}
|
||||
|
||||
private extension Collection where Element == UserSessionInfo {
|
||||
extension Collection where Element == UserSessionInfo {
|
||||
func asViewData() -> [UserSessionListItemViewData] {
|
||||
map { UserSessionListItemViewData(session: $0) }
|
||||
}
|
||||
|
||||
+1
-1
@@ -17,7 +17,7 @@
|
||||
import Foundation
|
||||
|
||||
/// View data for UserSessionListItem
|
||||
struct UserSessionListItemViewData: Identifiable {
|
||||
struct UserSessionListItemViewData: Identifiable, Hashable {
|
||||
private static let userSessionNameFormatter = UserSessionNameFormatter()
|
||||
private static let lastActivityDateFormatter = UserSessionLastActivityFormatter()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user