SearchedEventView.swift (1405B)
1 // 2 // SearchedEventView.swift 3 // damus 4 // 5 // Created by William Casarin on 2023-03-03. 6 // 7 8 import SwiftUI 9 10 enum EventSearchState { 11 case searching 12 case not_found 13 case found(NostrEvent) 14 } 15 16 struct SearchedEventView: View { 17 let state: DamusState 18 let event_id: String 19 @State var search_state: EventSearchState = .searching 20 21 var body: some View { 22 Group { 23 switch search_state { 24 case .not_found: 25 Text("Event could not be found") 26 case .searching: 27 Text("Searching...") 28 case .found(let ev): 29 let thread = ThreadModel(event: ev, damus_state: state) 30 let dest = ThreadView(state: state, thread: thread) 31 NavigationLink(destination: dest) { 32 EventView(damus: state, event: ev) 33 } 34 .buttonStyle(.plain) 35 } 36 } 37 .onAppear { 38 find_event(state: state, evid: event_id, find_from: nil) { ev in 39 if let ev { 40 self.search_state = .found(ev) 41 } else { 42 self.search_state = .not_found 43 } 44 } 45 } 46 } 47 } 48 49 struct SearchedEventView_Previews: PreviewProvider { 50 static var previews: some View { 51 SearchedEventView(state: test_damus_state(), event_id: "event_id") 52 } 53 }