feat: proper collapsing of root folder paths in the stats layer of the UI

This commit is contained in:
2026-01-22 14:44:48 -07:00
parent 64fad3b9bc
commit f388dccc08
5 changed files with 443 additions and 43 deletions
+9 -6
View File
@@ -28,6 +28,7 @@ use crate::ui::lidarr_ui::downloads::DownloadsUi;
use crate::ui::lidarr_ui::indexers::IndexersUi;
use crate::ui::lidarr_ui::root_folders::RootFoldersUi;
use crate::ui::lidarr_ui::system::SystemUi;
use crate::ui::utils::{extract_monitored_disk_space_vec, extract_monitored_root_folders};
use crate::{
app::App,
logos::LIDARR_LOGO,
@@ -146,12 +147,13 @@ fn draw_stats_context(f: &mut Frame<'_>, app: &App<'_>, area: Rect) {
f.render_widget(uptime_paragraph, stat_item_areas[1]);
f.render_widget(storage, stat_item_areas[2]);
for i in 0..disk_space_vec.len() {
let monitored_disk_space_vec = extract_monitored_disk_space_vec(app, disk_space_vec.clone());
for i in 0..monitored_disk_space_vec.len() {
let DiskSpace {
path,
free_space,
total_space,
} = &disk_space_vec[i];
} = &monitored_disk_space_vec[i];
let title = if let Some(path) = path {
path
} else {
@@ -168,12 +170,13 @@ fn draw_stats_context(f: &mut Frame<'_>, app: &App<'_>, area: Rect) {
f.render_widget(space_gauge, stat_item_areas[i + 3]);
}
f.render_widget(folders, stat_item_areas[disk_space_vec.len() + 3]);
f.render_widget(folders, stat_item_areas[monitored_disk_space_vec.len() + 3]);
for i in 0..root_folders.items.len() {
let monitored_root_folders = extract_monitored_root_folders(app, root_folders.items.clone());
for i in 0..monitored_root_folders.len() {
let RootFolder {
path, free_space, ..
} = &root_folders.items[i];
} = &monitored_root_folders[i];
let space: f64 = convert_to_gb(*free_space);
let root_folder_space = Paragraph::new(format!("{path}: {space:.2} GB free"))
.block(borderless_block())
@@ -181,7 +184,7 @@ fn draw_stats_context(f: &mut Frame<'_>, app: &App<'_>, area: Rect) {
f.render_widget(
root_folder_space,
stat_item_areas[i + disk_space_vec.len() + 4],
stat_item_areas[i + monitored_disk_space_vec.len() + 4],
)
}
} else {