damus

nostr ios client
git clone git://jb55.com/damus
Log | Files | Refs | README | LICENSE

commit 471f29f7ea6847571deaa3313c5b632f26dc2a91
parent 3c962ecdfef7c1ecddf329cfecceedcde6ebaa35
Author: William Casarin <jb55@jb55.com>
Date:   Sat,  2 Jul 2022 13:09:10 -0700

contact: update contact event on follow/unfollow

Signed-off-by: William Casarin <jb55@jb55.com>

Diffstat:
Mdamus/ContentView.swift | 8++++++--
Mdamus/Models/Contacts.swift | 13+++++++------
2 files changed, 13 insertions(+), 8 deletions(-)

diff --git a/damus/ContentView.swift b/damus/ContentView.swift @@ -248,12 +248,14 @@ struct ContentView: View { let target = notif.object as! FollowTarget let pk = target.pubkey - if unfollow_user(pool: damus.pool, + if let ev = unfollow_user(pool: damus.pool, our_contacts: damus.contacts.event, pubkey: damus.pubkey, privkey: privkey, unfollow: pk) { notify(.unfollowed, pk) + + damus.contacts.event = ev damus.contacts.remove_friend(pk) //friend_events = friend_events.filter { $0.pubkey != pk } } @@ -268,13 +270,15 @@ struct ContentView: View { return } - if follow_user(pool: damus.pool, + if let ev = follow_user(pool: damus.pool, our_contacts: damus.contacts.event, pubkey: damus.pubkey, privkey: privkey, follow: ReferencedId(ref_id: fnotify.pubkey, relay_id: nil, key: "p")) { notify(.followed, fnotify.pubkey) + damus_state?.contacts.event = ev + switch fnotify { case .pubkey(let pk): damus.contacts.add_friend_pubkey(pk) diff --git a/damus/Models/Contacts.swift b/damus/Models/Contacts.swift @@ -79,22 +79,23 @@ func create_contacts_content(_ relays: [RelayDescriptor]) -> String? { } -func follow_user(pool: RelayPool, our_contacts: NostrEvent?, pubkey: String, privkey: String, follow: ReferencedId) -> Bool { +func follow_user(pool: RelayPool, our_contacts: NostrEvent?, pubkey: String, privkey: String, follow: ReferencedId) -> NostrEvent? { guard let ev = follow_user_event(our_contacts: our_contacts, our_pubkey: pubkey, follow: follow) else { - return false + return nil } ev.calculate_id() ev.sign(privkey: privkey) + pool.send(.event(ev)) - return true + return ev } -func unfollow_user(pool: RelayPool, our_contacts: NostrEvent?, pubkey: String, privkey: String, unfollow: String) -> Bool { +func unfollow_user(pool: RelayPool, our_contacts: NostrEvent?, pubkey: String, privkey: String, unfollow: String) -> NostrEvent? { guard let cs = our_contacts else { - return false + return nil } let ev = unfollow_user_event(our_contacts: cs, our_pubkey: pubkey, unfollow: unfollow) @@ -103,7 +104,7 @@ func unfollow_user(pool: RelayPool, our_contacts: NostrEvent?, pubkey: String, p pool.send(.event(ev)) - return true + return ev } func unfollow_user_event(our_contacts: NostrEvent, our_pubkey: String, unfollow: String) -> NostrEvent {