Radish alpha
r
Radicle terminal user interface
Radicle
Git (anonymous pull)
Log in to clone via SSH
patch-select: Remove unused popup
Erik Kundt committed 2 years ago
commit eb3ac81ad260f464f5deb759f74085421c82e9fe
parent 3d5e2c312110313d197f8887a2e8b61adc635c7b
2 files changed +6 -94
modified bin/commands/patch/select.rs
@@ -38,33 +38,22 @@ pub enum Cid {
    List(ListCid),
    #[default]
    GlobalListener,
-
    Popup,
-
}
-

-
#[derive(Clone, Debug, Eq, PartialEq)]
-
pub enum PopupMessage {
-
    Info(String),
-
    Warning(String),
-
    Error(String),
-
    Hide,
}

#[derive(Clone, Default, Debug, Eq, PartialEq)]
pub enum Message {
-
    Popup(PopupMessage),
    #[default]
    Tick,
    Quit(Option<PatchId>),
    Batch(Vec<Message>),
}

-
#[allow(dead_code)]
pub struct App {
    context: Context,
    pages: PageStack<Cid, Message>,
    theme: Theme,
    quit: bool,
-
    patch_id: Option<PatchId>,
+
    result: Option<PatchId>,
}

/// Creates a new application using a tui-realm-application, mounts all
@@ -76,7 +65,7 @@ impl App {
            pages: PageStack::default(),
            theme: Theme::default(),
            quit: false,
-
            patch_id: None,
+
            result: None,
        }
    }

@@ -111,25 +100,9 @@ impl App {
                    _ => Ok(Some(Message::Batch(results))),
                }
            }
-
            Message::Popup(PopupMessage::Info(info)) => {
-
                self.show_info_popup(app, &theme, &info)?;
-
                Ok(None)
-
            }
-
            Message::Popup(PopupMessage::Warning(warning)) => {
-
                self.show_warning_popup(app, &theme, &warning)?;
-
                Ok(None)
-
            }
-
            Message::Popup(PopupMessage::Error(error)) => {
-
                self.show_error_popup(app, &theme, &error)?;
-
                Ok(None)
-
            }
-
            Message::Popup(PopupMessage::Hide) => {
-
                self.hide_popup(app)?;
-
                Ok(None)
-
            }
            Message::Quit(id) => {
                self.quit = true;
-
                self.patch_id = id;
+
                self.result = id;
                Ok(None)
            }
            _ => self
@@ -138,52 +111,6 @@ impl App {
                .update(app, &self.context, &theme, message),
        }
    }
-

-
    fn show_info_popup(
-
        &mut self,
-
        app: &mut Application<Cid, Message, NoUserEvent>,
-
        theme: &Theme,
-
        message: &str,
-
    ) -> Result<()> {
-
        let popup = tui::ui::info(theme, message);
-
        app.remount(Cid::Popup, popup.to_boxed(), vec![])?;
-
        app.active(&Cid::Popup)?;
-

-
        Ok(())
-
    }
-

-
    fn show_warning_popup(
-
        &mut self,
-
        app: &mut Application<Cid, Message, NoUserEvent>,
-
        theme: &Theme,
-
        message: &str,
-
    ) -> Result<()> {
-
        let popup = tui::ui::warning(theme, message);
-
        app.remount(Cid::Popup, popup.to_boxed(), vec![])?;
-
        app.active(&Cid::Popup)?;
-

-
        Ok(())
-
    }
-

-
    fn show_error_popup(
-
        &mut self,
-
        app: &mut Application<Cid, Message, NoUserEvent>,
-
        theme: &Theme,
-
        message: &str,
-
    ) -> Result<()> {
-
        let popup = tui::ui::error(theme, message);
-
        app.remount(Cid::Popup, popup.to_boxed(), vec![])?;
-
        app.active(&Cid::Popup)?;
-

-
        Ok(())
-
    }
-

-
    fn hide_popup(&mut self, app: &mut Application<Cid, Message, NoUserEvent>) -> Result<()> {
-
        app.blur()?;
-
        app.umount(&Cid::Popup)?;
-

-
        Ok(())
-
    }
}

impl Tui<Cid, Message> for App {
@@ -208,10 +135,6 @@ impl Tui<Cid, Message> for App {
        if let Ok(page) = self.pages.peek_mut() {
            page.view(app, frame);
        }
-

-
        if app.mounted(&Cid::Popup) {
-
            app.view(&Cid::Popup, frame, frame.size());
-
        }
    }

    fn update(&mut self, app: &mut Application<Cid, Message, NoUserEvent>) -> Result<bool> {
@@ -232,7 +155,7 @@ impl Tui<Cid, Message> for App {
    fn exit(&self) -> Option<Exit> {
        if self.quit {
            return Some(Exit {
-
                value: self.patch_id.map(|id| format!("{id}")),
+
                value: self.result.map(|id| format!("{id}")),
            });
        }
        None
modified bin/commands/patch/select/event.rs
@@ -4,14 +4,14 @@ use tuirealm::{MockComponent, NoUserEvent, State, StateValue};

use radicle_tui as tui;

-
use tui::ui::widget::container::{AppHeader, GlobalListener, LabeledContainer, Popup};
+
use tui::ui::widget::container::{AppHeader, GlobalListener, LabeledContainer};
use tui::ui::widget::context::{ContextBar, Shortcuts};
use tui::ui::widget::list::PropertyList;

use tui::ui::widget::Widget;

use super::super::common;
-
use super::{Message, PopupMessage};
+
use super::Message;

/// Since the framework does not know the type of messages that are being
/// passed around in the app, the following handlers need to be implemented for
@@ -65,17 +65,6 @@ impl tuirealm::Component<Message, NoUserEvent> for Widget<common::ui::PatchBrows
    }
}

-
impl tuirealm::Component<Message, NoUserEvent> for Widget<Popup> {
-
    fn on(&mut self, event: Event<NoUserEvent>) -> Option<Message> {
-
        match event {
-
            Event::Keyboard(KeyEvent { code: Key::Esc, .. }) => {
-
                Some(Message::Popup(PopupMessage::Hide))
-
            }
-
            _ => None,
-
        }
-
    }
-
}
-

impl tuirealm::Component<Message, NoUserEvent> for Widget<AppHeader> {
    fn on(&mut self, _event: Event<NoUserEvent>) -> Option<Message> {
        None