From f638f4bd1e3a03bc2bdd5f9dcd57d4830fd3c553 Mon Sep 17 00:00:00 2001 From: Shav Kinderlehrer Date: Sun, 24 Mar 2024 14:18:53 -0400 Subject: Overhaul events system + add url_manager --- src/components/url_manager.rs | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 src/components/url_manager.rs (limited to 'src/components/url_manager.rs') diff --git a/src/components/url_manager.rs b/src/components/url_manager.rs new file mode 100644 index 0000000..6067923 --- /dev/null +++ b/src/components/url_manager.rs @@ -0,0 +1,34 @@ +use url::Url; + +use crate::app_action::AppAction; +use crate::app_event::AppEvent; +use crate::component::Component; + +#[derive(Default)] +pub struct UrlManager { + url: Option, +} + +impl Component for UrlManager { + fn handle_event(&mut self, event: AppEvent) -> Option { + match event { + AppEvent::OpenUrl(url) => { + self.url = Some(url.clone()); + return Some(AppAction::StatusBarSetMessage(format!( + "Opening {}", + url.as_str() + ))); + } + _ => {} + } + None + } + + fn render( + &mut self, + _frame: &mut ratatui::prelude::Frame, + _rect: ratatui::prelude::Rect, + ) -> eyre::Result<()> { + Ok(()) + } +} -- cgit v1.2.3