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 }