From add6c14f1ee244502bd1a9599f2cd08320f935b7 Mon Sep 17 00:00:00 2001 From: Ogulcan Celik Date: Wed, 5 Aug 2026 03:41:38 +0300 Subject: feat(theme): add optional sidebar background --- src/ui/sidebar.rs | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) (limited to 'src/ui/sidebar.rs') diff --git a/src/ui/sidebar.rs b/src/ui/sidebar.rs index 50796e81..7ce1b0ad 100644 --- a/src/ui/sidebar.rs +++ b/src/ui/sidebar.rs @@ -757,6 +757,9 @@ pub(super) fn render_sidebar_collapsed(app: &AppState, frame: &mut Frame, area: let is_navigating = matches!(app.mode, Mode::Navigate); let p = &app.palette; + frame + .buffer_mut() + .set_style(area, Style::default().bg(p.sidebar_bg)); let sep_style = if is_navigating { Style::default().fg(p.accent) } else { @@ -960,6 +963,9 @@ pub(super) fn render_sidebar( area: Rect, ) { let p = &app.palette; + frame + .buffer_mut() + .set_style(area, Style::default().bg(p.sidebar_bg)); let is_navigating = matches!(app.mode, Mode::Navigate); let sep_style = if is_navigating { Style::default().fg(p.accent) @@ -1591,6 +1597,37 @@ mod tests { }) } + #[test] + fn expanded_and_collapsed_sidebars_use_custom_background() { + let mut app = crate::app::state::AppState::test_new(); + app.workspaces.clear(); + app.active = None; + app.palette.sidebar_bg = ratatui::style::Color::Rgb(12, 34, 56); + let area = Rect::new(0, 0, 26, 20); + + let mut expanded = Terminal::new(TestBackend::new(26, 20)).unwrap(); + expanded + .draw(|frame| render_sidebar(&app, &TerminalRuntimeRegistry::new(), frame, area)) + .unwrap(); + assert!(expanded + .backend() + .buffer() + .content + .iter() + .all(|cell| cell.bg == app.palette.sidebar_bg)); + + let mut collapsed = Terminal::new(TestBackend::new(26, 20)).unwrap(); + collapsed + .draw(|frame| render_sidebar_collapsed(&app, frame, area)) + .unwrap(); + assert!(collapsed + .backend() + .buffer() + .content + .iter() + .all(|cell| cell.bg == app.palette.sidebar_bg)); + } + #[test] fn default_agent_rows_remove_redundant_state_text() { let mut app = crate::app::state::AppState::test_new(); -- cgit v1.2.3