damus

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

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 }