Added logout option, room list on home screen, made various methods asynchronous,

This commit is contained in:
Stefan Ceriu
2022-02-22 09:18:46 +02:00
parent d90738e1e4
commit b53efb4869
12 changed files with 522 additions and 71 deletions
@@ -15,17 +15,43 @@
//
import Foundation
import UIKit
enum HomeScreenViewModelResult {
case logout
}
// MARK: View
struct HomeScreenViewState: BindableState {
let username: String
case loadUserAvatar
}
enum HomeScreenViewAction {
case logout
case loadUserAvatar
case loadRoomAvatar(roomId: String)
}
struct HomeScreenViewState: BindableState {
let userDisplayName: String
var userAvatar: UIImage?
var rooms: [HomeScreenRoom] = []
var directRooms: [HomeScreenRoom] {
rooms.filter { $0.isDirect }
}
var nondirectRooms: [HomeScreenRoom] {
rooms.filter { !$0.isDirect }
}
}
struct HomeScreenRoom: Identifiable {
let id: String
let displayName: String
let topic: String?
let lastMessage: String?
var avatar: UIImage?
let isDirect: Bool
let isEncrypted: Bool
}