34 lines
975 B
Swift
34 lines
975 B
Swift
|
import Foundation
|
||
|
import SwiftUI
|
||
|
|
||
|
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 }
|
||
|
}
|