43 lines
793 B
Swift
43 lines
793 B
Swift
import Foundation
|
|
|
|
final class RoomFormatter {
|
|
private let room: Room
|
|
private let server: Server
|
|
|
|
init(room: Room, server: Server) {
|
|
self.room = room
|
|
self.server = server
|
|
}
|
|
|
|
var title: String? {
|
|
if isGroupChat, !(room.name != nil && room.name?.isEmpty == false), let usernames = room.usernames {
|
|
return usernames
|
|
.filter { $0 == server.loggedUser.username }
|
|
.sorted()
|
|
.joined(separator: ", ")
|
|
}
|
|
|
|
if room.t != "d" {
|
|
return room.fname ?? room.name
|
|
}
|
|
|
|
if room.prid != nil || server.useRealName {
|
|
return room.fname ?? room.name
|
|
}
|
|
|
|
return room.name
|
|
}
|
|
|
|
var isGroupChat: Bool {
|
|
if let uids = room.uids, uids.count > 2 {
|
|
return true
|
|
}
|
|
|
|
if let usernames = room.usernames, usernames.count > 2 {
|
|
return true
|
|
}
|
|
|
|
return false
|
|
}
|
|
}
|