Radish alpha
r
Radicle terminal user interface
Radicle
Git (anonymous pull)
Log in to clone via SSH
bin: Unify table and text scrolling
Erik Kundt committed 1 year ago
commit 4803308e83b463ba20dd577af29ba26ae4238415
parent b0b2f2c65423025d617c017e38044255752535a4
3 files changed +27 -6
modified bin/commands/inbox/select/ui.rs
@@ -18,7 +18,8 @@ use tui::ui::widget::container::{
    Column, Container, ContainerProps, Footer, FooterProps, Header, HeaderProps,
};
use tui::ui::widget::input::{TextField, TextFieldProps};
-
use tui::ui::widget::list::{Table, TableProps, TableUtils};
+
use tui::ui::widget::list::{Table, TableProps};
+
use tui::ui::widget::utils;
use tui::ui::widget::{self, ViewProps};
use tui::ui::widget::{RenderProps, ToWidget, View};

@@ -290,7 +291,13 @@ fn browse_footer<'a>(props: &BrowserProps<'a>) -> Vec<Column<'a>> {

    let progress = props
        .selected
-
        .map(|selected| TableUtils::progress(selected, props.notifications.len(), props.page_size))
+
        .map(|selected| {
+
            utils::scroll::percent_absolute(
+
                selected.saturating_sub(props.page_size),
+
                props.notifications.len(),
+
                props.page_size,
+
            )
+
        })
        .unwrap_or_default();
    let progress = span::default(&format!("{}%", progress)).dim();

modified bin/commands/issue/select/ui.rs
@@ -21,7 +21,8 @@ use tui::ui::widget::container::{
    Column, Container, ContainerProps, Footer, FooterProps, Header, HeaderProps,
};
use tui::ui::widget::input::{TextField, TextFieldProps};
-
use tui::ui::widget::list::{Table, TableProps, TableUtils};
+
use tui::ui::widget::list::{Table, TableProps};
+
use tui::ui::widget::utils;
use tui::ui::widget::ViewProps;
use tui::ui::widget::{RenderProps, ToWidget, View};

@@ -315,7 +316,13 @@ fn browse_footer<'a>(props: &BrowserProps<'a>, selected: Option<usize>) -> Vec<C
    ]);

    let progress = selected
-
        .map(|selected| TableUtils::progress(selected, props.issues.len(), props.page_size))
+
        .map(|selected| {
+
            utils::scroll::percent_absolute(
+
                selected.saturating_sub(props.page_size),
+
                props.issues.len(),
+
                props.page_size,
+
            )
+
        })
        .unwrap_or_default();
    let progress = span::default(&format!("{}%", progress)).dim();

modified bin/commands/patch/select/ui.rs
@@ -23,7 +23,8 @@ use tui::ui::widget::container::{
    Column, Container, ContainerProps, Footer, FooterProps, Header, HeaderProps,
};
use tui::ui::widget::input::{TextField, TextFieldProps};
-
use tui::ui::widget::list::{Table, TableProps, TableUtils};
+
use tui::ui::widget::list::{Table, TableProps};
+
use tui::ui::widget::utils;
use tui::ui::widget::ViewProps;
use tui::ui::widget::{RenderProps, ToWidget, View};

@@ -339,7 +340,13 @@ fn browser_footer<'a>(props: &BrowserProps<'a>, selected: Option<usize>) -> Vec<
    ]);

    let progress = selected
-
        .map(|selected| TableUtils::progress(selected, props.patches.len(), props.page_size))
+
        .map(|selected| {
+
            utils::scroll::percent_absolute(
+
                selected.saturating_sub(props.page_size),
+
                props.patches.len(),
+
                props.page_size,
+
            )
+
        })
        .unwrap_or_default();
    let progress = span::default(&format!("{}%", progress)).dim();