Radish alpha
r
Radicle terminal user interface
Radicle
Git (anonymous pull)
Log in to clone via SSH
patch: Move context bar to common module
Erik Kundt committed 2 years ago
commit 7a53efcc47af7308093ab4b6d73af9d6cd07bb2e
parent 856cd8b37b29b599955de284c3668edf3f2dcf65
5 files changed +69 -131
modified bin/commands/patch/common/ui.rs
@@ -1,5 +1,6 @@
use radicle::cob::patch::{Patch, PatchId};

+
use tui::ui::widget::context::{ContextBar, Progress};
use tuirealm::command::{Cmd, CmdResult};
use tuirealm::tui::layout::Rect;
use tuirealm::{AttrValue, Attribute, Frame, MockComponent, Props, State};
@@ -8,7 +9,7 @@ use radicle_tui as tui;

use tui::context::Context;
use tui::ui::cob::PatchItem;
-
use tui::ui::theme::Theme;
+
use tui::ui::theme::{Theme, style};
use tui::ui::widget::{Widget, WidgetComponent};

use tui::ui::widget::label::{self};
@@ -91,3 +92,66 @@ impl WidgetComponent for PatchBrowser {
        self.table.perform(cmd)
    }
}
+

+
pub fn browse_context(context: &Context, _theme: &Theme, progress: Progress) -> Widget<ContextBar> {
+
    use radicle::cob::patch::State;
+

+
    let mut draft = 0;
+
    let mut open = 0;
+
    let mut archived = 0;
+
    let mut merged = 0;
+

+
    let patches = context.patches().as_ref().unwrap();
+
    for (_, patch) in patches {
+
        match patch.state() {
+
            State::Draft => draft += 1,
+
            State::Open { conflicts: _ } => open += 1,
+
            State::Archived => archived += 1,
+
            State::Merged {
+
                commit: _,
+
                revision: _,
+
            } => merged += 1,
+
        }
+
    }
+

+
    let context = label::default("");
+
    let divider = label::default(" | ");
+

+
    let draft_n = label::default(&format!("{draft}")).style(style::gray_dim());
+
    let draft = label::default(" Draft");
+

+
    let open_n = label::default(&format!("{open}")).style(style::green());
+
    let open = label::default(" Open");
+

+
    let archived_n = label::default(&format!("{archived}")).style(style::yellow());
+
    let archived = label::default(" Archived");
+

+
    let merged_n = label::default(&format!("{merged}")).style(style::cyan());
+
    let merged = label::default(" Merged ");
+

+
    let progress =
+
        label::default(&format!(" {} ", progress.to_string())).style(style::magenta_reversed());
+
    let spacer = label::default("");
+

+
    let context_bar = ContextBar::new(
+
        label::group(&[context]),
+
        label::group(&[spacer.clone()]),
+
        label::group(&[spacer]),
+
        label::group(&[
+
            draft_n,
+
            draft,
+
            divider.clone(),
+
            open_n,
+
            open,
+
            divider.clone(),
+
            archived_n,
+
            archived,
+
            divider,
+
            merged_n,
+
            merged,
+
        ]),
+
        label::group(&[progress]),
+
    );
+

+
    Widget::new(context_bar).height(1)
+
}
modified bin/commands/patch/list/page.rs
@@ -14,6 +14,7 @@ use tui::ui::{layout, subscription};
use tui::ViewPage;

use super::{ui, Application, Cid, ListCid, Message};
+
use super::super::common;

///
/// Home
@@ -64,7 +65,7 @@ impl ListView {
            }
            _ => Progress::None,
        };
-
        let context = ui::browse_context(context, theme, progress);
+
        let context = common::ui::browse_context(context, theme, progress);

        app.remount(Cid::List(ListCid::Context), context.to_boxed(), vec![])?;

modified bin/commands/patch/list/ui.rs
@@ -7,7 +7,6 @@ use tui::ui::theme::{style, Theme};
use tui::ui::widget::Widget;

use tui::ui::widget::container::Tabs;
-
use tui::ui::widget::context::{ContextBar, Progress};
use tui::ui::widget::label::{self};

use super::super::common;
@@ -26,66 +25,3 @@ pub fn patches(
) -> Widget<common::ui::PatchBrowser> {
    Widget::new(common::ui::PatchBrowser::new(context, theme, selected))
}
-

-
pub fn browse_context(context: &Context, _theme: &Theme, progress: Progress) -> Widget<ContextBar> {
-
    use radicle::cob::patch::State;
-

-
    let mut draft = 0;
-
    let mut open = 0;
-
    let mut archived = 0;
-
    let mut merged = 0;
-

-
    let patches = context.patches().as_ref().unwrap();
-
    for (_, patch) in patches {
-
        match patch.state() {
-
            State::Draft => draft += 1,
-
            State::Open { conflicts: _ } => open += 1,
-
            State::Archived => archived += 1,
-
            State::Merged {
-
                commit: _,
-
                revision: _,
-
            } => merged += 1,
-
        }
-
    }
-

-
    let context = label::default("");
-
    let divider = label::default(" | ");
-

-
    let draft_n = label::default(&format!("{draft}")).style(style::gray_dim());
-
    let draft = label::default(" Draft");
-

-
    let open_n = label::default(&format!("{open}")).style(style::green());
-
    let open = label::default(" Open");
-

-
    let archived_n = label::default(&format!("{archived}")).style(style::yellow());
-
    let archived = label::default(" Archived");
-

-
    let merged_n = label::default(&format!("{merged}")).style(style::cyan());
-
    let merged = label::default(" Merged ");
-

-
    let progress =
-
        label::default(&format!(" {} ", progress.to_string())).style(style::magenta_reversed());
-
    let spacer = label::default("");
-

-
    let context_bar = ContextBar::new(
-
        label::group(&[context]),
-
        label::group(&[spacer.clone()]),
-
        label::group(&[spacer]),
-
        label::group(&[
-
            draft_n,
-
            draft,
-
            divider.clone(),
-
            open_n,
-
            open,
-
            divider.clone(),
-
            archived_n,
-
            archived,
-
            divider,
-
            merged_n,
-
            merged,
-
        ]),
-
        label::group(&[progress]),
-
    );
-

-
    Widget::new(context_bar).height(1)
-
}
modified bin/commands/patch/select/page.rs
@@ -13,6 +13,7 @@ use tui::ui::widget::Widget;
use tui::ui::{layout, subscription};
use tui::ViewPage;

+
use super::super::common;
use super::{ui, Application, Cid, ListCid, Message};

///
@@ -63,7 +64,7 @@ impl ListView {
            }
            _ => Progress::None,
        };
-
        let context = ui::browse_context(context, theme, progress);
+
        let context = common::ui::browse_context(context, theme, progress);

        app.remount(Cid::List(ListCid::Context), context.to_boxed(), vec![])?;

modified bin/commands/patch/select/ui.rs
@@ -7,7 +7,6 @@ use tui::ui::theme::{style, Theme};
use tui::ui::widget::Widget;

use tui::ui::widget::container::Tabs;
-
use tui::ui::widget::context::{ContextBar, Progress};
use tui::ui::widget::label::{self};

use super::super::common;
@@ -26,66 +25,3 @@ pub fn patches(
) -> Widget<common::ui::PatchBrowser> {
    Widget::new(common::ui::PatchBrowser::new(context, theme, selected))
}
-

-
pub fn browse_context(context: &Context, _theme: &Theme, progress: Progress) -> Widget<ContextBar> {
-
    use radicle::cob::patch::State;
-

-
    let mut draft = 0;
-
    let mut open = 0;
-
    let mut archived = 0;
-
    let mut merged = 0;
-

-
    let patches = context.patches().as_ref().unwrap();
-
    for (_, patch) in patches {
-
        match patch.state() {
-
            State::Draft => draft += 1,
-
            State::Open { conflicts: _ } => open += 1,
-
            State::Archived => archived += 1,
-
            State::Merged {
-
                commit: _,
-
                revision: _,
-
            } => merged += 1,
-
        }
-
    }
-

-
    let context = label::default("");
-
    let divider = label::default(" | ");
-

-
    let draft_n = label::default(&format!("{draft}")).style(style::gray_dim());
-
    let draft = label::default(" Draft");
-

-
    let open_n = label::default(&format!("{open}")).style(style::green());
-
    let open = label::default(" Open");
-

-
    let archived_n = label::default(&format!("{archived}")).style(style::yellow());
-
    let archived = label::default(" Archived");
-

-
    let merged_n = label::default(&format!("{merged}")).style(style::cyan());
-
    let merged = label::default(" Merged ");
-

-
    let progress =
-
        label::default(&format!(" {} ", progress.to_string())).style(style::magenta_reversed());
-
    let spacer = label::default("");
-

-
    let context_bar = ContextBar::new(
-
        label::group(&[context]),
-
        label::group(&[spacer.clone()]),
-
        label::group(&[spacer]),
-
        label::group(&[
-
            draft_n,
-
            draft,
-
            divider.clone(),
-
            open_n,
-
            open,
-
            divider.clone(),
-
            archived_n,
-
            archived,
-
            divider,
-
            merged_n,
-
            merged,
-
        ]),
-
        label::group(&[progress]),
-
    );
-

-
    Widget::new(context_bar).height(1)
-
}