fix count/sparkline for all/unmatched

This commit is contained in:
Robin Appelman 2025-08-20 23:16:44 +02:00
commit a00565cf65

View file

@ -2,6 +2,7 @@ use crate::app::Filter;
use crate::grouping::{GroupingResult, GroupingUi, LogGrouping}; use crate::grouping::{GroupingResult, GroupingUi, LogGrouping};
use crate::ui::style::TABLE_HEADER_STYLE; use crate::ui::style::TABLE_HEADER_STYLE;
use crate::ui::table::{ScrollbarTable, ScrollbarTableState}; use crate::ui::table::{ScrollbarTable, ScrollbarTableState};
use itertools::repeat_n;
use ratatui::prelude::*; use ratatui::prelude::*;
use ratatui::widgets::{Cell, Row}; use ratatui::widgets::{Cell, Row};
use std::borrow::Cow; use std::borrow::Cow;
@ -60,6 +61,7 @@ impl StatefulWidget for GroupingList<'_, '_> {
result, result,
self.time_range.clone(), self.time_range.clone(),
i.abs_diff(state.selected()) < 100, i.abs_diff(state.selected()) < 100,
self.ui.widths.len(),
) )
}) })
.collect(); .collect();
@ -82,6 +84,7 @@ fn grouped_row<'a>(
grouping: &LogGrouping<'a>, grouping: &LogGrouping<'a>,
time_range: RangeInclusive<OffsetDateTime>, time_range: RangeInclusive<OffsetDateTime>,
is_in_view: bool, is_in_view: bool,
column_count: usize,
) -> Row<'a> { ) -> Row<'a> {
if is_in_view { if is_in_view {
if let Some(match_result) = &grouping.result { if let Some(match_result) = &grouping.result {
@ -92,13 +95,15 @@ fn grouped_row<'a>(
]); ]);
Row::new(columns).height(match_result.height() as u16) Row::new(columns).height(match_result.height() as u16)
} else { } else {
Row::new([ Row::new(
Text::from(grouping.name.unwrap_or_default()), [Text::from(grouping.name.unwrap_or_default())]
Text::from(""), .into_iter()
Text::from(""), .chain(repeat_n(Text::default(), column_count - 1))
.chain([
Text::from(grouping.sparkline(time_range).to_string()), Text::from(grouping.sparkline(time_range).to_string()),
Text::from(grouping.count().to_string()), Text::from(grouping.count().to_string()),
]) ]),
)
} }
} else { } else {
Row::default() Row::default()