47 lines
1.1 KiB
Swift
47 lines
1.1 KiB
Swift
//
|
|
// DirectMessagesModel.swift
|
|
// damus
|
|
//
|
|
// Created by William Casarin on 2022-06-29.
|
|
//
|
|
|
|
import Foundation
|
|
|
|
class DirectMessagesModel: ObservableObject {
|
|
@Published var dms: [(String, DirectMessageModel)] = []
|
|
@Published var loading: Bool = false
|
|
let our_pubkey: String
|
|
|
|
init(our_pubkey: String) {
|
|
self.our_pubkey = our_pubkey
|
|
}
|
|
|
|
var message_requests: [(String, DirectMessageModel)] {
|
|
return dms.filter { dm in dm.1.is_request }
|
|
}
|
|
|
|
var friend_dms: [(String, DirectMessageModel)] {
|
|
return dms.filter { dm in !dm.1.is_request }
|
|
}
|
|
|
|
func lookup_or_create(_ pubkey: String) -> DirectMessageModel {
|
|
if let dm = lookup(pubkey) {
|
|
return dm
|
|
}
|
|
|
|
let new = DirectMessageModel(our_pubkey: our_pubkey)
|
|
dms.append((pubkey, new))
|
|
return new
|
|
}
|
|
|
|
func lookup(_ pubkey: String) -> DirectMessageModel? {
|
|
for dm in dms {
|
|
if pubkey == dm.0 {
|
|
return dm.1
|
|
}
|
|
}
|
|
|
|
return nil
|
|
}
|
|
}
|