damus

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

UserRelaysView.swift (1253B)


      1 //
      2 //  UserRelaysView.swift
      3 //  damus
      4 //
      5 //  Created by William Casarin on 2022-12-29.
      6 //
      7 
      8 import SwiftUI
      9 
     10 struct UserRelaysView: View {
     11     let state: DamusState
     12     let relays: [RelayURL]
     13 
     14     @State var relay_state: [(RelayURL, Bool)]
     15 
     16     init(state: DamusState, relays: [RelayURL]) {
     17         self.state = state
     18         self.relays = relays
     19         let relay_state = UserRelaysView.make_relay_state(pool: state.pool, relays: relays)
     20         self._relay_state = State(initialValue: relay_state)
     21     }
     22 
     23     static func make_relay_state(pool: RelayPool, relays: [RelayURL]) -> [(RelayURL, Bool)] {
     24         return relays.map({ r in
     25             return (r, pool.get_relay(r) == nil)
     26         }).sorted { (a, b) in a.0 < b.0 }
     27     }
     28     
     29     var body: some View {
     30         List(relay_state, id: \.0) { (r, add) in
     31             RelayView(state: state, relay: r, showActionButtons: .constant(true), recommended: true)
     32         }
     33         .listStyle(PlainListStyle())
     34         .navigationBarTitle(NSLocalizedString("Relays", comment: "Navigation bar title that shows the list of relays for a user."))
     35     }
     36 }
     37 
     38 struct UserRelaysView_Previews: PreviewProvider {
     39     static var previews: some View {
     40         UserRelaysView(state: test_damus_state, relays: [])
     41     }
     42 }