damus

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

RecommendedRelayView.swift (1634B)


      1 //
      2 //  RecommendedRelayView.swift
      3 //  damus
      4 //
      5 //  Created by William Casarin on 2022-12-29.
      6 //
      7 
      8 import SwiftUI
      9 
     10 struct RecommendedRelayView: View {
     11     let damus: DamusState
     12     let relay: String
     13     let add_button: Bool
     14     
     15     init(damus: DamusState, relay: String) {
     16         self.damus = damus
     17         self.relay = relay
     18         self.add_button = true
     19     }
     20     
     21     init(damus: DamusState, relay: String, add_button: Bool) {
     22         self.damus = damus
     23         self.relay = relay
     24         self.add_button = add_button
     25     }
     26     
     27     var body: some View {
     28         HStack {
     29             Text(relay)
     30             Spacer()
     31             if add_button {
     32                 if let privkey = damus.keypair.privkey {
     33                     Button(NSLocalizedString("Add", comment: "Button to add recommended relay server.")) {
     34                         guard let ev_before_add = damus.contacts.event else {
     35                             return
     36                         }
     37                         guard let ev_after_add = add_relay(ev: ev_before_add, privkey: privkey, current_relays: damus.pool.descriptors, relay: relay, info: .rw) else {
     38                             return
     39                         }
     40                         process_contact_event(pool: damus.pool, contacts: damus.contacts, pubkey: damus.pubkey, ev: ev_after_add)
     41                         damus.pool.send(.event(ev_after_add))
     42                     }
     43                 }
     44             }
     45         }
     46     }
     47 }
     48 
     49 struct RecommendedRelayView_Previews: PreviewProvider {
     50     static var previews: some View {
     51         RecommendedRelayView(damus: test_damus_state(), relay: "wss://relay.damus.io")
     52     }
     53 }