Browse Source

Fix some more context menu bugs

master
William Casarin 2 years ago
parent
commit
9fa11118d3
  1. 2
      damus/Views/ChatroomView.swift
  2. 2
      damus/Views/DMChatView.swift
  3. 6
      damus/Views/EventView.swift
  4. 2
      damus/Views/Events/EmbeddedEventView.swift
  5. 14
      damus/Views/Events/EventMenu.swift
  6. 2
      damus/Views/Events/SelectedEventView.swift

2
damus/Views/ChatroomView.swift

@ -24,7 +24,7 @@ struct ChatroomView: View {
next_ev: ind == count-1 ? nil : thread.events[ind+1], next_ev: ind == count-1 ? nil : thread.events[ind+1],
damus_state: damus damus_state: damus
) )
.event_context_menu(ev, privkey: damus.keypair.privkey, pubkey: ev.pubkey) .event_context_menu(ev, keypair: damus.keypair, target_pubkey: ev.pubkey)
.onTapGesture { .onTapGesture {
if thread.initial_event.id == ev.id { if thread.initial_event.id == ev.id {
//dismiss() //dismiss()

2
damus/Views/DMChatView.swift

@ -19,7 +19,7 @@ struct DMChatView: View {
VStack(alignment: .leading) { VStack(alignment: .leading) {
ForEach(Array(zip(dms.events, dms.events.indices)), id: \.0.id) { (ev, ind) in ForEach(Array(zip(dms.events, dms.events.indices)), id: \.0.id) { (ev, ind) in
DMView(event: dms.events[ind], damus_state: damus_state) DMView(event: dms.events[ind], damus_state: damus_state)
.event_context_menu(ev, privkey: damus_state.keypair.privkey, pubkey: ev.pubkey) .event_context_menu(ev, keypair: damus_state.keypair, target_pubkey: ev.pubkey)
} }
EndBlock(height: 80) EndBlock(height: 80)
} }

6
damus/Views/EventView.swift

@ -129,7 +129,7 @@ struct EventView: View {
.id(event.id) .id(event.id)
.frame(maxWidth: .infinity, minHeight: PFP_SIZE) .frame(maxWidth: .infinity, minHeight: PFP_SIZE)
.padding([.bottom], 2) .padding([.bottom], 2)
.event_context_menu(event, privkey: damus.keypair.privkey, pubkey: pubkey) .event_context_menu(event, keypair: damus.keypair, target_pubkey: pubkey)
} }
} }
@ -171,9 +171,9 @@ extension View {
} }
} }
func event_context_menu(_ event: NostrEvent, privkey: String?, pubkey: String) -> some View { func event_context_menu(_ event: NostrEvent, keypair: Keypair, target_pubkey: String) -> some View {
return self.contextMenu { return self.contextMenu {
EventMenuContext(event: event, privkey: privkey, pubkey: pubkey) EventMenuContext(event: event, keypair: keypair, target_pubkey: target_pubkey)
} }
} }

2
damus/Views/Events/EmbeddedEventView.swift

@ -23,7 +23,7 @@ struct EmbeddedEventView: View {
EventBody(damus_state: damus_state, event: event, size: .small) EventBody(damus_state: damus_state, event: event, size: .small)
} }
.event_context_menu(event, privkey: damus_state.keypair.privkey, pubkey: pubkey) .event_context_menu(event, keypair: damus_state.keypair, target_pubkey: pubkey)
} }
} }

14
damus/Views/Events/EventMenu.swift

@ -9,19 +9,19 @@ import SwiftUI
struct EventMenuContext: View { struct EventMenuContext: View {
let event: NostrEvent let event: NostrEvent
let privkey: String? let keypair: Keypair
let pubkey: String let target_pubkey: String
var body: some View { var body: some View {
Button { Button {
UIPasteboard.general.string = event.get_content(privkey) UIPasteboard.general.string = event.get_content(keypair.privkey)
} label: { } label: {
Label(NSLocalizedString("Copy Text", comment: "Context menu option for copying the text from an note."), systemImage: "doc.on.doc") Label(NSLocalizedString("Copy Text", comment: "Context menu option for copying the text from an note."), systemImage: "doc.on.doc")
} }
Button { Button {
UIPasteboard.general.string = bech32_pubkey(event.pubkey) UIPasteboard.general.string = bech32_pubkey(target_pubkey)
} label: { } label: {
Label(NSLocalizedString("Copy User Pubkey", comment: "Context menu option for copying the ID of the user who created the note."), systemImage: "person") Label(NSLocalizedString("Copy User Pubkey", comment: "Context menu option for copying the ID of the user who created the note."), systemImage: "person")
} }
@ -45,16 +45,16 @@ struct EventMenuContext: View {
} }
// Only allow reporting if logged in with private key and the currently viewed profile is not the logged in profile. // Only allow reporting if logged in with private key and the currently viewed profile is not the logged in profile.
if pubkey != event.pubkey && privkey != nil { if keypair.pubkey != target_pubkey && keypair.privkey != nil {
Button(role: .destructive) { Button(role: .destructive) {
let target: ReportTarget = .note(ReportNoteTarget(pubkey: event.pubkey, note_id: event.id)) let target: ReportTarget = .note(ReportNoteTarget(pubkey: target_pubkey, note_id: event.id))
notify(.report, target) notify(.report, target)
} label: { } label: {
Label(NSLocalizedString("Report", comment: "Context menu option for reporting content."), systemImage: "exclamationmark.bubble") Label(NSLocalizedString("Report", comment: "Context menu option for reporting content."), systemImage: "exclamationmark.bubble")
} }
Button(role: .destructive) { Button(role: .destructive) {
notify(.block, event.pubkey) notify(.block, target_pubkey)
} label: { } label: {
Label(NSLocalizedString("Block", comment: "Context menu option for blocking users."), systemImage: "exclamationmark.octagon") Label(NSLocalizedString("Block", comment: "Context menu option for blocking users."), systemImage: "exclamationmark.octagon")
} }

2
damus/Views/Events/SelectedEventView.swift

@ -49,7 +49,7 @@ struct SelectedEventView: View {
.padding([.top], 4) .padding([.top], 4)
} }
.padding([.leading], 2) .padding([.leading], 2)
.event_context_menu(event, privkey: damus.keypair.privkey, pubkey: event.pubkey) .event_context_menu(event, keypair: damus.keypair, target_pubkey: event.pubkey)
} }
} }
} }

Loading…
Cancel
Save