Add the ability to unlike posts

Changelog-Added: Add ability to unlike posts
Closes: #580
This commit is contained in:
Oleg Gordiichuk
2023-02-12 22:45:47 +01:00
committed by William Casarin
parent 4f86361b63
commit 237c939639
5 changed files with 59 additions and 7 deletions

View File

@@ -167,6 +167,15 @@ class HomeModel: ObservableObject {
}
}
func handle_delete_event(_ ev: NostrEvent) {
guard ev.is_valid else {
return
}
self.deleted_events.insert(ev.id)
}
func handle_channel_create(_ ev: NostrEvent) {
guard ev.is_valid else {
@@ -185,13 +194,18 @@ class HomeModel: ObservableObject {
self.notifications = notifications.filter { !damus_state.contacts.is_muted($0.pubkey) }
}
func handle_delete_event(_ ev: NostrEvent) {
guard ev.is_valid else {
return
}
self.deleted_events.insert(ev.id)
}
func handle_unlike_event(_ ev: NostrEvent) {
guard ev.is_valid, let privkey = self.damus_state.keypair.privkey, let e = ev.last_refid() else {
return
}
let delete = make_delete_event(pubkey: damus_state.keypair.pubkey, privkey: privkey, deleted_events: [ev.id])
pool.send(.event(delete))
damus_state.likes.remove_event(ev, target: e.ref_id)
}
func handle_contact_event(sub_id: String, relay_id: String, ev: NostrEvent) {
process_contact_event(state: self.damus_state, ev: ev)

View File

@@ -49,4 +49,17 @@ class EventCounter {
return .success(counts[target]!)
}
func remove_event(_ ev: NostrEvent, target: String) {
let pubkey = ev.pubkey
user_events[pubkey]?.remove(target)
if counts[target] == nil {
counts[target] = 0
return
}
counts[target]! -= 1
}
}