damus

nostr ios client
git clone git://jb55.com/damus
Log | Files | Refs | README | LICENSE

ReplyQuoteView.swift (2278B)


      1 //
      2 //  SwiftUIView.swift
      3 //  damus
      4 //
      5 //  Created by William Casarin on 2022-04-19.
      6 //
      7 
      8 import SwiftUI
      9 
     10 struct ReplyQuoteView: View {
     11     let keypair: Keypair
     12     let quoter: NostrEvent
     13     let event_id: String
     14     let profiles: Profiles
     15     let previews: PreviewCache
     16     
     17     @EnvironmentObject var thread: ThreadModel
     18     
     19     func MainContent(event: NostrEvent) -> some View {
     20         HStack(alignment: .top) {
     21             Rectangle()
     22                 .frame(width: 2)
     23                 .padding([.leading], 4)
     24                 .foregroundColor(.accentColor)
     25             
     26             VStack(alignment: .leading) {
     27                 HStack(alignment: .top) {
     28                     ProfilePicView(pubkey: event.pubkey, size: 16, highlight: .reply, profiles: profiles)
     29                     Text(Profile.displayName(profile: profiles.lookup(id: event.pubkey), pubkey: event.pubkey))
     30                         .foregroundColor(.accentColor)
     31                     Text("\(format_relative_time(event.created_at))", comment: "Amount of time that has passed since reply quote event occurred.")
     32                         .foregroundColor(.gray)
     33                 }
     34                 
     35                 NoteContentView(keypair: keypair, event: event, profiles: profiles, previews: previews, show_images: false, artifacts: .just_content(event.content), size: .normal)
     36                     .font(.callout)
     37                     .foregroundColor(.accentColor)
     38                 
     39                 //Spacer()
     40             }
     41             //.border(Color.red)
     42         }
     43         //.border(Color.green)
     44     }
     45     
     46     var body: some View {
     47         Group {
     48             if let event = thread.lookup(event_id) {
     49                 MainContent(event: event)
     50                 .padding(4)
     51                 .frame(maxWidth: .infinity, alignment: .leading)
     52                 .contentShape(Rectangle())
     53             }
     54         }
     55     }
     56 }
     57 
     58 struct ReplyQuoteView_Previews: PreviewProvider {
     59     static var previews: some View {
     60         let s = test_damus_state()
     61         let quoter = NostrEvent(content: "a\nb\nc", pubkey: "pubkey")
     62         ReplyQuoteView(keypair: s.keypair, quoter: quoter, event_id: "pubkey2", profiles: s.profiles, previews: PreviewCache())
     63             .environmentObject(ThreadModel(event: quoter, damus_state: s))
     64     }
     65 }