connect or disconnect from relay detail view
This commit is contained in:
@@ -16,6 +16,15 @@ struct RelayDetailView: View {
|
|||||||
|
|
||||||
@Environment(\.dismiss) var dismiss
|
@Environment(\.dismiss) var dismiss
|
||||||
|
|
||||||
|
func check_connection() -> Bool {
|
||||||
|
for relay in state.pool.relays {
|
||||||
|
if relay.id == self.relay {
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
func FieldText(_ str: String?) -> some View {
|
func FieldText(_ str: String?) -> some View {
|
||||||
Text(str ?? "No data available")
|
Text(str ?? "No data available")
|
||||||
}
|
}
|
||||||
@@ -23,6 +32,42 @@ struct RelayDetailView: View {
|
|||||||
var body: some View {
|
var body: some View {
|
||||||
Group {
|
Group {
|
||||||
Form {
|
Form {
|
||||||
|
|
||||||
|
if let privkey = state.keypair.privkey {
|
||||||
|
if check_connection() {
|
||||||
|
Button(action: {
|
||||||
|
guard let ev = state.contacts.event else {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
let descriptors = state.pool.descriptors
|
||||||
|
guard let new_ev = remove_relay( ev: ev, current_relays: descriptors, privkey: privkey, relay: relay) else {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
process_contact_event(state: state, ev: new_ev)
|
||||||
|
state.pool.send(.event(new_ev))
|
||||||
|
dismiss()
|
||||||
|
}) {
|
||||||
|
Text("Disconnect From Relay", comment: "Button to disconnect from the relay.")
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
Button(action: {
|
||||||
|
guard let ev_before_add = state.contacts.event else {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
guard let ev_after_add = add_relay(ev: ev_before_add, privkey: privkey, current_relays: state.pool.descriptors, relay: relay, info: .rw) else {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
process_contact_event(state: state, ev: ev_after_add)
|
||||||
|
state.pool.send(.event(ev_after_add))
|
||||||
|
dismiss()
|
||||||
|
}) {
|
||||||
|
Text("Connect To Relay", comment: "Button to connect to the relay.")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if let pubkey = nip11.pubkey {
|
if let pubkey = nip11.pubkey {
|
||||||
Section(NSLocalizedString("Admin", comment: "Label to display relay contact user.")) {
|
Section(NSLocalizedString("Admin", comment: "Label to display relay contact user.")) {
|
||||||
UserView(damus_state: state, pubkey: pubkey)
|
UserView(damus_state: state, pubkey: pubkey)
|
||||||
@@ -68,6 +113,7 @@ struct RelayDetailView: View {
|
|||||||
dismiss()
|
dismiss()
|
||||||
}
|
}
|
||||||
.navigationTitle(nip11.name ?? "")
|
.navigationTitle(nip11.name ?? "")
|
||||||
|
.navigationBarTitleDisplayMode(.inline)
|
||||||
}
|
}
|
||||||
|
|
||||||
private func nipsList(nips: [Int]) -> AttributedString {
|
private func nipsList(nips: [Int]) -> AttributedString {
|
||||||
|
|||||||
Reference in New Issue
Block a user