Browse Source

reply bug fixes

still need to revamp this logic for mentions

Signed-off-by: William Casarin <jb55@jb55.com>
profiles-everywhere
William Casarin 3 years ago
parent
commit
5bb46c5d10
  1. 9
      damus/Nostr/NostrEvent.swift
  2. 7
      damus/Views/EventDetailView.swift
  3. 15
      damus/Views/EventView.swift

9
damus/Nostr/NostrEvent.swift

@ -33,7 +33,7 @@ struct EventId: Identifiable, CustomStringConvertible {
}
}
class NostrEvent: Codable, Identifiable {
class NostrEvent: Codable, Identifiable, CustomStringConvertible {
var id: String
var sig: String
var tags: [[String]]
@ -48,6 +48,11 @@ class NostrEvent: Codable, Identifiable {
let created_at: Int64
let kind: Int
let content: String
var description: String {
let p = pow.map { String($0) } ?? "?"
return "NostrEvent { id: \(id) pubkey \(pubkey) kind \(kind) tags \(tags) pow \(p) content '\(content)' }"
}
private enum CodingKeys: String, CodingKey {
case id, sig, tags, pubkey, created_at, kind, content
@ -140,7 +145,7 @@ class NostrEvent: Codable, Identifiable {
let tag = tags[i]
if tag.count >= 2 && tag[0] == "p" {
c += 1
if ns.count < 3 {
if ns.count < 2 {
ns.append(tag[1])
}
}

7
damus/Views/EventDetailView.swift

@ -120,6 +120,7 @@ struct EventDetailView: View {
scroll_to_event(scroller: proxy, id: ev.id, delay: 0.5, animate: true)
}
.onTapGesture {
print_event(ev)
let any = any_collapsed(collapsed_events)
if (collapsed && any) || (!collapsed && !any) {
toggle_collapse_thread(scroller: proxy, id: ev.id)
@ -129,6 +130,7 @@ struct EventDetailView: View {
if !(self.collapsed && highlight.is_none) {
EventView(event: ev, highlight: collapsed ? .none : highlight, has_action_bar: true)
.onTapGesture {
print_event(ev)
if !collapsed {
toggle_collapse_thread(scroller: proxy, id: ev.id)
}
@ -354,3 +356,8 @@ func any_collapsed(_ evs: [CollapsedEvent]) -> Bool {
}
return false
}
func print_event(_ ev: NostrEvent) {
print(ev.description)
}

15
damus/Views/EventView.swift

@ -103,12 +103,19 @@ func reply_desc(profiles: Profiles, event: NostrEvent) -> String {
}
if names.count == 2 {
if n > 2 {
let and_other = reply_others_desc(n: n, n_pubkeys: pubkeys.count)
return "Replying to \(names[0]), \(names[1])\(and_other)"
}
return "Replying to \(names[0]) & \(names[1])"
}
let other = n - pubkeys.count
let plural = other == 1 ? "" : "s"
let and_other = n > 1 ? " & \(other) other\(plural)" : ""
let and_other = reply_others_desc(n: n, n_pubkeys: pubkeys.count)
return "Replying to \(names[0])\(and_other)"
}
func reply_others_desc(n: Int, n_pubkeys: Int) -> String {
let other = n - n_pubkeys
let plural = other == 1 ? "" : "s"
return n > 1 ? " & \(other) other\(plural)" : ""
}

Loading…
Cancel
Save