Commit fd0882c 1 parent e4f5e32 commit fd0882c Copy full SHA for fd0882c
File tree 2 files changed +23
-5
lines changed
2 files changed +23
-5
lines changed Original file line number Diff line number Diff line change @@ -633,6 +633,15 @@ impl Accounts {
633
633
self . get_combined_relays ( self . get_selected_account_data ( ) , |_| true )
634
634
}
635
635
636
+ // returns the active account's relays or empty set if there are none (no bootstrap)
637
+ pub fn get_advertised_relays ( & self ) -> BTreeSet < RelaySpec > {
638
+ if let Some ( data) = self . get_selected_account_data ( ) {
639
+ data. relay . advertised . lock ( ) . unwrap ( ) . clone ( )
640
+ } else {
641
+ BTreeSet :: new ( )
642
+ }
643
+ }
644
+
636
645
pub fn update ( & mut self , subman : & mut SubMan , _ctx : & egui:: Context ) {
637
646
// IMPORTANT - This function is called in the UI update loop,
638
647
// make sure it is fast when idle
Original file line number Diff line number Diff line change 1
- use std:: collections:: HashMap ;
1
+ use std:: collections:: { BTreeSet , HashMap } ;
2
2
3
3
use crate :: colors:: PINK ;
4
4
use crate :: relay_pool_manager:: { RelayPoolManager , RelayStatus } ;
@@ -69,6 +69,12 @@ impl<'a> RelayView<'a> {
69
69
70
70
/// Show the current relays and return a relay the user selected to delete
71
71
fn show_relays ( & ' a self , ui : & mut Ui ) -> Option < String > {
72
+ let advertised_relays: BTreeSet < String > = self
73
+ . accounts
74
+ . get_advertised_relays ( )
75
+ . into_iter ( )
76
+ . map ( |rs| rs. url )
77
+ . collect ( ) ;
72
78
let mut relay_to_remove = None ;
73
79
for ( index, relay_info) in self . manager . get_relay_infos ( ) . iter ( ) . enumerate ( ) {
74
80
ui. add_space ( 8.0 ) ;
@@ -106,10 +112,13 @@ impl<'a> RelayView<'a> {
106
112
} ) ;
107
113
108
114
ui. with_layout ( Layout :: right_to_left ( Align :: Center ) , |ui| {
109
- if ui. add ( delete_button ( ui. visuals ( ) . dark_mode ) ) . clicked ( ) {
110
- relay_to_remove = Some ( relay_info. relay_url . to_string ( ) ) ;
111
- } ;
112
-
115
+ if advertised_relays. contains ( relay_info. relay_url ) {
116
+ if ui. add ( delete_button ( ui. visuals ( ) . dark_mode ) ) . clicked ( ) {
117
+ relay_to_remove = Some ( relay_info. relay_url . to_string ( ) ) ;
118
+ } ;
119
+ } else {
120
+ ui. add_space ( 16.0 ) ;
121
+ }
113
122
show_connection_status ( ui, relay_info. status ) ;
114
123
} ) ;
115
124
} ) ;
You can’t perform that action at this time.
0 commit comments