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 }