Radish alpha
r
Radicle terminal user interface
Radicle
Git (anonymous pull)
Log in to clone via SSH
lib: Improve imUI table with header
Erik Kundt committed 1 year ago
commit 9f97181d5a1643345cbb5a09020479771fa90b0c
parent 49cb2036737604ee045e5e99b2e4412b86904f97
2 files changed +6 -2
modified src/ui/im.rs
@@ -484,11 +484,12 @@ where
        selected: &'a mut Option<usize>,
        items: &'a Vec<R>,
        header: impl IntoIterator<Item = Column<'a>>,
+
        columns: impl IntoIterator<Item = Column<'a>>,
    ) -> Response
    where
        R: ToRow<W> + Clone,
    {
-
        HeaderedTable::<R, W>::new(selected, items, header).ui(self, frame)
+
        HeaderedTable::<R, W>::new(selected, items, header, columns).ui(self, frame)
    }

    pub fn shortcuts(
modified src/ui/im/widget.rs
@@ -438,6 +438,7 @@ pub struct HeaderedTable<'a, R, const W: usize> {
    items: &'a Vec<R>,
    selected: &'a mut Option<usize>,
    header: Vec<Column<'a>>,
+
    columns: Vec<Column<'a>>,
}

impl<'a, R, const W: usize> HeaderedTable<'a, R, W> {
@@ -445,11 +446,13 @@ impl<'a, R, const W: usize> HeaderedTable<'a, R, W> {
        selected: &'a mut Option<usize>,
        items: &'a Vec<R>,
        header: impl IntoIterator<Item = Column<'a>>,
+
        columns: impl IntoIterator<Item = Column<'a>>,
    ) -> Self {
        Self {
            items,
            selected,
            header: header.into_iter().collect(),
+
            columns: columns.into_iter().collect(),
        }
    }

@@ -489,7 +492,7 @@ where
                    frame,
                    self.selected,
                    self.items,
-
                    self.header.to_vec(),
+
                    self.columns.to_vec(),
                    Some(Borders::BottomSides),
                );
                response.changed |= table.changed;