commit 7c563cb0aeeb2b7900adc8debb15db8b3be2d228
parent 5018b9aa1e5487d3ecb130c4249a80b680f00223
Author: William Casarin <jb55@jb55.com>
Date:   Fri, 17 Feb 2023 10:24:47 -0800
Revert "Add menu ellipsis button to notes"
This reverts commit 390c9162ae46d8418a24fe4857ec3e6b22644529.
Diffstat:
6 files changed, 47 insertions(+), 93 deletions(-)
diff --git a/damus/Views/ChatroomView.swift b/damus/Views/ChatroomView.swift
@@ -24,7 +24,7 @@ struct ChatroomView: View {
                                  next_ev: ind == count-1 ? nil : thread.events[ind+1],
                                  damus_state: damus
                         )
-                        .contextMenu{MenuItems(event: ev, keypair: damus.keypair, target_pubkey: ev.pubkey)}
+                        .event_context_menu(ev, keypair: damus.keypair, target_pubkey: ev.pubkey)
                         .onTapGesture {
                             if thread.initial_event.id == ev.id {
                                 //dismiss()
diff --git a/damus/Views/DMChatView.swift b/damus/Views/DMChatView.swift
@@ -19,7 +19,7 @@ struct DMChatView: View {
                 VStack(alignment: .leading) {
                     ForEach(Array(zip(dms.events, dms.events.indices)), id: \.0.id) { (ev, ind) in
                         DMView(event: dms.events[ind], damus_state: damus_state)
-                            .contextMenu{MenuItems(event: ev, keypair: damus_state.keypair, target_pubkey: ev.pubkey)}
+                            .event_context_menu(ev, keypair: damus_state.keypair, target_pubkey: ev.pubkey)
                     }
                     EndBlock(height: 80)
                 }
diff --git a/damus/Views/Events/EmbeddedEventView.swift b/damus/Views/Events/EmbeddedEventView.swift
@@ -18,20 +18,12 @@ struct EmbeddedEventView: View {
     var body: some View {
         VStack(alignment: .leading) {
             let profile = damus_state.profiles.lookup(id: pubkey)
-            HStack {
-                EventProfile(damus_state: damus_state, pubkey: pubkey, profile: profile, size: .small)
-                
-                Spacer()
-                
-                EventMenuContext(event: event, keypair: damus_state.keypair, target_pubkey: event.pubkey)
-                    .padding([.bottom], 4)
-
-            }
-            .minimumScaleFactor(0.75)
-            .lineLimit(1)
+            
+            EventProfile(damus_state: damus_state, pubkey: pubkey, profile: profile, size: .small)
             
             EventBody(damus_state: damus_state, event: event, size: .small)
         }
+        .event_context_menu(event, keypair: damus_state.keypair, target_pubkey: pubkey)
     }
 }
 
diff --git a/damus/Views/Events/EventMenu.swift b/damus/Views/Events/EventMenu.swift
@@ -13,73 +13,50 @@ struct EventMenuContext: View {
     let target_pubkey: String
     
     var body: some View {
-        HStack {
-            Menu {
-                
-                MenuItems(event: event, keypair: keypair, target_pubkey: target_pubkey)
-                
-            } label: {
-                Label(NSLocalizedString("", comment: "Context menu"), systemImage: "ellipsis")
-                    .foregroundColor(Color.gray)
-            }
+    
+        Button {
+            UIPasteboard.general.string = event.get_content(keypair.privkey)
+        } label: {
+            Label(NSLocalizedString("Copy Text", comment: "Context menu option for copying the text from an note."), systemImage: "doc.on.doc")
         }
-        .contentShape(Rectangle())
-        .onTapGesture {}
-        
-    }
-}
 
-struct MenuItems: View {
-    let event: NostrEvent
-    let keypair: Keypair
-    let target_pubkey: String
-    
-    var body: some View {
-        Group {
-            Button {
-                UIPasteboard.general.string = event.get_content(keypair.privkey)
-            } label: {
-                Label(NSLocalizedString("Copy Text", comment: "Context menu option for copying the text from an note."), systemImage: "doc.on.doc")
-            }
-            
-            Button {
-                UIPasteboard.general.string = bech32_pubkey(target_pubkey)
-            } label: {
-                Label(NSLocalizedString("Copy User Pubkey", comment: "Context menu option for copying the ID of the user who created the note."), systemImage: "person")
-            }
-            
-            Button {
-                UIPasteboard.general.string = bech32_note_id(event.id) ?? event.id
-            } label: {
-                Label(NSLocalizedString("Copy Note ID", comment: "Context menu option for copying the ID of the note."), systemImage: "note.text")
-            }
-            
-            Button {
-                UIPasteboard.general.string = event_to_json(ev: event)
+        Button {
+            UIPasteboard.general.string = bech32_pubkey(target_pubkey)
+        } label: {
+            Label(NSLocalizedString("Copy User Pubkey", comment: "Context menu option for copying the ID of the user who created the note."), systemImage: "person")
+        }
+
+        Button {
+            UIPasteboard.general.string = bech32_note_id(event.id) ?? event.id
+        } label: {
+            Label(NSLocalizedString("Copy Note ID", comment: "Context menu option for copying the ID of the note."), systemImage: "note.text")
+        }
+
+        Button {
+            UIPasteboard.general.string = event_to_json(ev: event)
+        } label: {
+            Label(NSLocalizedString("Copy Note JSON", comment: "Context menu option for copying the JSON text from the note."), systemImage: "square.on.square")
+        }
+
+        Button {
+            NotificationCenter.default.post(name: .broadcast_event, object: event)
+        } label: {
+            Label(NSLocalizedString("Broadcast", comment: "Context menu option for broadcasting the user's note to all of the user's connected relay servers."), systemImage: "globe")
+        }
+
+        // Only allow reporting if logged in with private key and the currently viewed profile is not the logged in profile.
+        if keypair.pubkey != target_pubkey && keypair.privkey != nil {
+            Button(role: .destructive) {
+                let target: ReportTarget = .note(ReportNoteTarget(pubkey: target_pubkey, note_id: event.id))
+                notify(.report, target)
             } label: {
-                Label(NSLocalizedString("Copy Note JSON", comment: "Context menu option for copying the JSON text from the note."), systemImage: "square.on.square")
+                Label(NSLocalizedString("Report", comment: "Context menu option for reporting content."), systemImage: "exclamationmark.bubble")
             }
-            
-            Button {
-                NotificationCenter.default.post(name: .broadcast_event, object: event)
+
+            Button(role: .destructive) {
+                notify(.block, target_pubkey)
             } label: {
-                Label(NSLocalizedString("Broadcast", comment: "Context menu option for broadcasting the user's note to all of the user's connected relay servers."), systemImage: "globe")
-            }
-            
-            // Only allow reporting if logged in with private key and the currently viewed profile is not the logged in profile.
-            if keypair.pubkey != target_pubkey && keypair.privkey != nil {
-                Button(role: .destructive) {
-                    let target: ReportTarget = .note(ReportNoteTarget(pubkey: target_pubkey, note_id: event.id))
-                    notify(.report, target)
-                } label: {
-                    Label(NSLocalizedString("Report", comment: "Context menu option for reporting content."), systemImage: "exclamationmark.bubble")
-                }
-                
-                Button(role: .destructive) {
-                    notify(.block, target_pubkey)
-                } 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")
             }
         }
     }
diff --git a/damus/Views/Events/SelectedEventView.swift b/damus/Views/Events/SelectedEventView.swift
@@ -28,18 +28,7 @@ struct SelectedEventView: View {
             let profile = damus.profiles.lookup(id: pubkey)
 
             VStack(alignment: .leading) {
-                HStack {
-                    EventProfile(damus_state: damus, pubkey: pubkey, profile: profile, size: .normal)
-                    
-                    Spacer()
-                    
-                    EventMenuContext(event: event, keypair: damus.keypair, target_pubkey: event.pubkey)
-                        .padding([.bottom], 4)
-
-                }
-                .minimumScaleFactor(0.75)
-                .lineLimit(1)
-                
+                EventProfile(damus_state: damus, pubkey: pubkey, profile: profile, size: .normal)
                 EventBody(damus_state: damus, event: event, size: .selected)
                 
                 if let mention = first_eref_mention(ev: event, privkey: damus.keypair.privkey) {
@@ -71,6 +60,7 @@ struct SelectedEventView: View {
                 self.bar.update(damus: self.damus, evid: target)
             }
             .padding([.leading], 2)
+            .event_context_menu(event, keypair: damus.keypair, target_pubkey: event.pubkey)
         }
     }
 }
diff --git a/damus/Views/Events/TextEvent.swift b/damus/Views/Events/TextEvent.swift
@@ -37,13 +37,7 @@ struct TextEvent: View {
                         .foregroundColor(.gray)
                     
                     Spacer()
-                    
-                    EventMenuContext(event: event, keypair: damus.keypair, target_pubkey: event.pubkey)
-                        .padding([.bottom], 4)
-
                 }
-                .minimumScaleFactor(0.75)
-                .lineLimit(1)
                 
                 EventBody(damus_state: damus, event: event, size: .normal)
                 
@@ -65,6 +59,7 @@ struct TextEvent: View {
         .id(event.id)
         .frame(maxWidth: .infinity, minHeight: PFP_SIZE)
         .padding([.bottom], 2)
+        .event_context_menu(event, keypair: damus.keypair, target_pubkey: pubkey)
     }
 }