fix ordering on search, copy note

Signed-off-by: William Casarin <jb55@jb55.com>
This commit is contained in:
William Casarin
2022-05-09 12:09:51 -07:00
parent cac139fff1
commit bd49c8a9d1
5 changed files with 22 additions and 5 deletions

View File

@@ -41,7 +41,7 @@ class SearchModel: ObservableObject {
return return
} }
if insert_uniq_sorted_event(events: &self.events, new_ev: ev) { if insert_uniq_sorted_event(events: &self.events, new_ev: ev, cmp: { $0.created_at > $1.created_at } ) {
objectWillChange.send() objectWillChange.send()
} }
} }

View File

@@ -140,7 +140,7 @@ class ThreadModel: ObservableObject {
self.replies.add(id: ev.id, reply_id: reply.ref_id) self.replies.add(id: ev.id, reply_id: reply.ref_id)
} }
if insert_uniq_sorted_event(events: &self.events, new_ev: ev) { if insert_uniq_sorted_event(events: &self.events, new_ev: ev, cmp: { $0.created_at < $1.created_at }) {
objectWillChange.send() objectWillChange.send()
} }
//self.events.append(ev) //self.events.append(ev)

View File

@@ -354,3 +354,14 @@ func gather_reply_ids(our_pubkey: String, from: NostrEvent) -> [ReferencedId] {
} }
return ids return ids
} }
func event_to_json(ev: NostrEvent) -> String {
let encoder = JSONEncoder()
guard let res = try? encoder.encode(ev) else {
return "{}"
}
guard let str = String(data: res, encoding: .utf8) else {
return "{}"
}
return str
}

View File

@@ -8,7 +8,7 @@
import Foundation import Foundation
func insert_uniq_sorted_event(events: inout [NostrEvent], new_ev: NostrEvent) -> Bool { func insert_uniq_sorted_event(events: inout [NostrEvent], new_ev: NostrEvent, cmp: (NostrEvent, NostrEvent) -> Bool) -> Bool {
var i: Int = 0 var i: Int = 0
for event in events { for event in events {
@@ -17,7 +17,7 @@ func insert_uniq_sorted_event(events: inout [NostrEvent], new_ev: NostrEvent) ->
return false return false
} }
if new_ev.created_at < event.created_at { if cmp(new_ev, event) {
events.insert(new_ev, at: i) events.insert(new_ev, at: i)
return true return true
} }

View File

@@ -95,7 +95,7 @@ struct EventView: View {
Button { Button {
UIPasteboard.general.string = event.content UIPasteboard.general.string = event.content
} label: { } label: {
Label("Copy", systemImage: "doc.on.doc") Label("Copy Text", systemImage: "doc.on.doc")
} }
Button { Button {
@@ -104,6 +104,12 @@ struct EventView: View {
Label("Copy ID", systemImage: "tag") Label("Copy ID", systemImage: "tag")
} }
Button {
UIPasteboard.general.string = event_to_json(ev: event)
} label: {
Label("Copy Note", systemImage: "note")
}
Button { Button {
NotificationCenter.default.post(name: .broadcast_event, object: event) NotificationCenter.default.post(name: .broadcast_event, object: event)
} label: { } label: {