import Foundation import monalxmpp import SwiftUI // MARK: - Account enum AccountsAvailability { case noAccounts case allDisabled case someEnabled } struct Account: Identifiable { let id: Int let local: String let domain: String let resource: String let isEnabled: Bool var jid: String { "\(local)@\(domain)" } init?(_ dict: NSDictionary) { guard let id = dict.value(forKey: "account_id") as? Int else { return nil } guard let local = dict.value(forKey: "username") as? String else { return nil } guard let domain = dict.value(forKey: "domain") as? String else { return nil } guard let resource = dict.value(forKey: "resource") as? String else { return nil } guard let isEnabled = dict.value(forKey: "enabled") as? Bool else { return nil } self.id = id self.local = local self.domain = domain self.resource = resource self.isEnabled = isEnabled } } extension Account: UniversalInputSelectionElement { var icon: Image? { nil } var text: String? { jid } } // MARK: - Contact struct Contact: Identifiable { let ownerId: Int let contactJid: String let name: String? var id: String { contactJid } init?(_ obj: MLContact) { ownerId = obj.accountID.intValue contactJid = obj.contactJid name = obj.nickName.isEmpty ? nil : obj.nickName } }