diff options
author | Shav Kinderlehrer <[email protected]> | 2024-03-24 14:18:53 -0400 |
---|---|---|
committer | Shav Kinderlehrer <[email protected]> | 2024-03-24 14:18:53 -0400 |
commit | f638f4bd1e3a03bc2bdd5f9dcd57d4830fd3c553 (patch) | |
tree | fa42f60268450070fd8c25596c6bdc046369996b /src/components/url_manager.rs | |
parent | 9d23304feba7b1ed50e582ea5a26deafedba505a (diff) | |
download | molehole-f638f4bd1e3a03bc2bdd5f9dcd57d4830fd3c553.tar.gz molehole-f638f4bd1e3a03bc2bdd5f9dcd57d4830fd3c553.zip |
Diffstat (limited to 'src/components/url_manager.rs')
-rw-r--r-- | src/components/url_manager.rs | 34 |
1 files changed, 34 insertions, 0 deletions
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<Url>, +} + +impl Component for UrlManager { + fn handle_event(&mut self, event: AppEvent) -> Option<AppAction> { + 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(()) + } +} |