diff --git a/src/ui_preview/main.rs b/src/ui_preview/main.rs index d10bbaf..a307d45 100644 --- a/src/ui_preview/main.rs +++ b/src/ui_preview/main.rs @@ -1,11 +1,15 @@ mod account_login_preview; mod egui_preview_setup; +mod relay_view_preview; use account_login_preview::{DesktopAccountLoginPreview, MobileAccountLoginPreview}; use egui_preview_setup::{EguiPreviewCase, EguiPreviewSetup}; use notedeck::app_creation::{generate_mobile_emulator_native_options, generate_native_options}; +use relay_view_preview::RelayViewPreview; use std::env; -fn run_test_app(create_supr: F, create_child: O, is_mobile: bool) +#[cfg(not(target_arch = "wasm32"))] +#[tokio::main] +async fn run_test_app(create_supr: F, create_child: O, is_mobile: bool) where F: 'static + FnOnce(&eframe::CreationContext<'_>) -> EguiPreviewSetup, T: 'static + EguiPreviewCase, @@ -39,6 +43,12 @@ fn main() { "MobileAccountLoginPreview" => { run_test_app(EguiPreviewSetup::new, MobileAccountLoginPreview::new, true) } + "DesktopRelayViewPreview" => { + run_test_app(EguiPreviewSetup::new, RelayViewPreview::new, false) + } + "MobileRelayViewPreview" => { + run_test_app(EguiPreviewSetup::new, RelayViewPreview::new, true) + } _ => println!("Component not found."), } } else { diff --git a/src/ui_preview/relay_view_preview.rs b/src/ui_preview/relay_view_preview.rs new file mode 100644 index 0000000..4fe4018 --- /dev/null +++ b/src/ui_preview/relay_view_preview.rs @@ -0,0 +1,35 @@ +use enostr::RelayPool; +use notedeck::{relay_pool_manager::RelayPoolManager, relay_view::RelayView}; + +use crate::egui_preview_setup::{EguiPreviewCase, EguiPreviewSetup}; + +pub struct RelayViewPreview { + pool: RelayPool, +} + +#[allow(unused_must_use)] +impl EguiPreviewCase for RelayViewPreview { + fn new(_supr: EguiPreviewSetup) -> Self { + let mut pool = RelayPool::new(); + let wakeup = move || {}; + + pool.add_url("wss://relay.damus.io".to_string(), wakeup); + pool.add_url("wss://eden.nostr.land".to_string(), wakeup); + pool.add_url("wss://nostr.wine".to_string(), wakeup); + pool.add_url("wss://nos.lol".to_string(), wakeup); + pool.add_url("wss://test_relay_url_long_00000000000000000000000000000000000000000000000000000000000000000000000000000000000".to_string(), wakeup); + + for _ in 0..20 { + pool.add_url("tmp".to_string(), wakeup); + } + + RelayViewPreview { pool } + } +} + +impl eframe::App for RelayViewPreview { + fn update(&mut self, ctx: &egui::Context, _: &mut eframe::Frame) { + self.pool.try_recv(); + RelayView::new(ctx, RelayPoolManager::new(&mut self.pool)).panel(); + } +}