aboutsummaryrefslogtreecommitdiff
path: root/src/components/url_manager.rs
blob: 6067923cd051a7ac672ab670af643d0beadf6305 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
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(())
    }
}