Standardize page header and use in relays section (other sections still TODO)

This commit is contained in:
Bu5hm4nn 2023-10-18 21:11:56 -06:00
parent e0963a37dc
commit d8ea13870b
5 changed files with 79 additions and 95 deletions

View File

@ -12,33 +12,25 @@ use nostr_types::RelayUrl;
pub(super) fn update(app: &mut GossipUi, _ctx: &Context, _frame: &mut eframe::Frame, ui: &mut Ui) {
let is_editing = app.relays.edit.is_some();
ui.add_space(10.0);
ui.horizontal_wrapped(|ui| {
ui.with_layout(egui::Layout::left_to_right(egui::Align::Center), |ui| {
ui.add_space(2.0);
ui.heading(Page::RelaysActivityMonitor.name());
ui.set_enabled(!is_editing);
});
ui.with_layout(egui::Layout::right_to_left(egui::Align::Min), |ui| {
ui.add_space(20.0);
super::configure_list_btn(app, ui);
ui.add_space(20.0);
super::relay_filter_combo(app, ui);
ui.add_space(20.0);
super::relay_sort_combo(app, ui);
ui.add_space(20.0);
widgets::search_filter_field(ui, &mut app.relays.search, 200.0);
ui.add_space(200.0); // search_field somehow doesn't "take up" space
if ui
.button(RichText::new(Page::RelaysCoverage.name()))
.on_hover_cursor(egui::CursorIcon::PointingHand)
.clicked()
{
app.set_page(crate::ui::Page::RelaysCoverage);
}
});
widgets::page_header(ui, Page::RelaysActivityMonitor.name(),|ui| {
ui.set_enabled(!is_editing);
ui.add_space(20.0);
super::configure_list_btn(app, ui);
ui.add_space(20.0);
super::relay_filter_combo(app, ui);
ui.add_space(20.0);
super::relay_sort_combo(app, ui);
ui.add_space(20.0);
widgets::search_filter_field(ui, &mut app.relays.search, 200.0);
ui.add_space(200.0); // search_field somehow doesn't "take up" space
if ui
.button(RichText::new(Page::RelaysCoverage.name()))
.on_hover_cursor(egui::CursorIcon::PointingHand)
.clicked()
{
app.set_page(crate::ui::Page::RelaysCoverage);
}
});
ui.add_space(10.0);
let relays = if !is_editing {
// clear edit cache if present

View File

@ -121,40 +121,32 @@ fn find_relays_for_pubkey(pk: &PublicKey) -> Vec<RelayUrl> {
}
pub(super) fn update(app: &mut GossipUi, _ctx: &Context, _frame: &mut eframe::Frame, ui: &mut Ui) {
ui.add_space(10.0);
ui.horizontal_wrapped(|ui| {
ui.with_layout(egui::Layout::left_to_right(Align::Center), |ui| {
ui.heading(format!(
"Low Coverage Report (less than {} relays)",
app.settings.num_relays_per_person
));
ui.add_space(10.0);
});
ui.with_layout(egui::Layout::right_to_left(egui::Align::Center), |ui| {
ui.add_space(20.0);
ui.spacing_mut().button_padding *= 2.0;
widgets::page_header(ui, format!(
"Low Coverage Report (less than {} relays)",
app.settings.num_relays_per_person
), |ui|{
ui.add_space(20.0);
ui.spacing_mut().button_padding *= 2.0;
if ui
.button("Pick Relays Again")
.on_hover_cursor(egui::CursorIcon::PointingHand)
.clicked()
{
let _ = GLOBALS.to_overlord.send(ToOverlordMessage::PickRelays);
}
ui.add_space(10.0);
{
widgets::set_important_button_visuals(ui, app);
if ui
.button("Pick Relays Again")
.button(Page::RelaysActivityMonitor.name())
.on_hover_cursor(egui::CursorIcon::PointingHand)
.clicked()
{
let _ = GLOBALS.to_overlord.send(ToOverlordMessage::PickRelays);
app.set_page(Page::RelaysActivityMonitor);
}
ui.add_space(10.0);
{
widgets::set_important_button_visuals(ui, app);
if ui
.button(Page::RelaysActivityMonitor.name())
.on_hover_cursor(egui::CursorIcon::PointingHand)
.clicked()
{
app.set_page(Page::RelaysActivityMonitor);
}
}
});
}
});
ui.add_space(10.0);
ui.horizontal_wrapped(|ui| {
ui.label("You can change how many relays per person to query here:");
if ui.link("Network Settings").clicked() {

View File

@ -8,23 +8,17 @@ use gossip_lib::GLOBALS;
pub(super) fn update(app: &mut GossipUi, _ctx: &Context, _frame: &mut eframe::Frame, ui: &mut Ui) {
let is_editing = app.relays.edit.is_some();
ui.add_space(10.0);
ui.horizontal_wrapped(|ui| {
ui.add_space(2.0);
ui.heading(Page::RelaysKnownNetwork.name());
widgets::page_header(ui, Page::RelaysKnownNetwork.name(), |ui|{
ui.set_enabled(!is_editing);
ui.with_layout(egui::Layout::right_to_left(egui::Align::Min), |ui| {
ui.add_space(20.0);
super::configure_list_btn(app, ui);
ui.add_space(20.0);
super::relay_filter_combo(app, ui);
ui.add_space(20.0);
super::relay_sort_combo(app, ui);
ui.add_space(20.0);
widgets::search_filter_field(ui, &mut app.relays.search, 200.0);
});
ui.add_space(20.0);
super::configure_list_btn(app, ui);
ui.add_space(20.0);
super::relay_filter_combo(app, ui);
ui.add_space(20.0);
super::relay_sort_combo(app, ui);
ui.add_space(20.0);
widgets::search_filter_field(ui, &mut app.relays.search, 200.0);
});
ui.add_space(10.0);
// TBD time how long this takes. We don't want expensive code in the UI
// FIXME keep more relay info and display it

View File

@ -9,33 +9,27 @@ use gossip_lib::GLOBALS;
pub(super) fn update(app: &mut GossipUi, _ctx: &Context, _frame: &mut eframe::Frame, ui: &mut Ui) {
let is_editing = app.relays.edit.is_some();
ui.add_space(10.0);
ui.horizontal_wrapped(|ui| {
ui.add_space(2.0);
ui.heading(Page::RelaysMine.name());
widgets::page_header(ui, Page::RelaysMine.name(), |ui|{
ui.set_enabled(!is_editing);
ui.with_layout(egui::Layout::right_to_left(egui::Align::Min), |ui| {
ui.add_space(20.0);
super::configure_list_btn(app, ui);
ui.add_space(20.0);
super::relay_filter_combo(app, ui);
ui.add_space(20.0);
super::relay_sort_combo(app, ui);
ui.add_space(20.0);
widgets::search_filter_field(ui, &mut app.relays.search, 200.0);
ui.add_space(200.0); // search_field somehow doesn't "take up" space
widgets::set_important_button_visuals(ui, app);
if ui.button("Advertise Relay List")
.on_hover_cursor(egui::CursorIcon::PointingHand)
.on_hover_text("Advertise my relays. Will send 10002 kind to all relays that have 'ADVERTISE' usage enabled")
.clicked() {
let _ = GLOBALS
.to_overlord
.send(ToOverlordMessage::AdvertiseRelayList);
}
});
ui.add_space(20.0);
super::configure_list_btn(app, ui);
ui.add_space(20.0);
super::relay_filter_combo(app, ui);
ui.add_space(20.0);
super::relay_sort_combo(app, ui);
ui.add_space(20.0);
widgets::search_filter_field(ui, &mut app.relays.search, 200.0);
ui.add_space(200.0); // search_field somehow doesn't "take up" space
widgets::set_important_button_visuals(ui, app);
if ui.button("Advertise Relay List")
.on_hover_cursor(egui::CursorIcon::PointingHand)
.on_hover_text("Advertise my relays. Will send 10002 kind to all relays that have 'ADVERTISE' usage enabled")
.clicked() {
let _ = GLOBALS
.to_overlord
.send(ToOverlordMessage::AdvertiseRelayList);
}
});
ui.add_space(10.0);
let relays = if !is_editing {
// clear edit cache if present

View File

@ -3,7 +3,7 @@ pub(crate) mod list_entry;
pub use copy_button::{CopyButton, COPY_SYMBOL_SIZE};
mod nav_item;
use egui_winit::egui::{vec2, FontSelection, Rect, Response, Sense, TextEdit, Ui, WidgetText};
use egui_winit::egui::{vec2, FontSelection, Rect, Response, Sense, TextEdit, Ui, WidgetText, self};
pub use nav_item::NavItem;
mod relay_entry;
@ -24,6 +24,18 @@ pub const DROPDOWN_DISTANCE: f32 = 10.0;
// ui.label(job.job);
// }
pub fn page_header<R>(ui: &mut Ui, title: impl Into<egui::RichText>, right_aligned_content: impl FnOnce(&mut Ui) -> R) {
ui.add_space(10.0);
ui.horizontal(|ui| {
ui.with_layout(egui::Layout::left_to_right(egui::Align::Center), |ui| {
ui.add_space(2.0);
ui.heading(title);
});
ui.with_layout(egui::Layout::right_to_left(egui::Align::Center), right_aligned_content);
});
ui.add_space(10.0);
}
/// Create a label which truncates after max_width
pub fn truncated_label(ui: &mut Ui, text: impl Into<WidgetText>, max_width: f32) {
let mut job = text.into().into_text_job(