BuilderEventView.swift (1634B)
1 // 2 // BuilderEventView.swift 3 // damus 4 // 5 // Created by William Casarin on 2023-01-23. 6 // 7 8 import SwiftUI 9 10 struct BuilderEventView: View { 11 let damus: DamusState 12 let event_id: NoteId 13 let event: NostrEvent? 14 15 init(damus: DamusState, event: NostrEvent) { 16 self.event = event 17 self.damus = damus 18 self.event_id = event.id 19 } 20 21 init(damus: DamusState, event_id: NoteId) { 22 self.event_id = event_id 23 self.damus = damus 24 self.event = nil 25 } 26 27 func Event(event: NostrEvent) -> some View { 28 return EventView(damus: damus, event: event, options: .embedded) 29 .padding([.top, .bottom], 8) 30 .onTapGesture { 31 let ev = event.get_inner_event(cache: damus.events) ?? event 32 let thread = ThreadModel(event: ev, damus_state: damus) 33 damus.nav.push(route: .Thread(thread: thread)) 34 } 35 } 36 37 var body: some View { 38 VStack { 39 if let event { 40 self.Event(event: event) 41 } else { 42 EventLoaderView(damus_state: damus, event_id: self.event_id) { loaded_event in 43 self.Event(event: loaded_event) 44 } 45 } 46 } 47 .frame(minWidth: 0, maxWidth: .infinity) 48 .overlay( 49 RoundedRectangle(cornerRadius: 10) 50 .stroke(Color.gray.opacity(0.2), lineWidth: 1.0) 51 ) 52 } 53 } 54 55 struct BuilderEventView_Previews: PreviewProvider { 56 static var previews: some View { 57 BuilderEventView(damus: test_damus_state, event_id: test_note.id) 58 } 59 } 60