diff options
| author | Ogulcan Celik <ogulcancelik@gmail.com> | 2026-08-05 03:41:38 +0300 |
|---|---|---|
| committer | Ogulcan Celik <ogulcancelik@gmail.com> | 2026-08-05 04:07:11 +0300 |
| commit | add6c14f1ee244502bd1a9599f2cd08320f935b7 (patch) | |
| tree | d02b35da75a6a1ab9e37cc699c3db877cf84d884 /src/ui/sidebar.rs | |
| parent | 1f1e434268ad6e8102fdac6d5996e3f190138a28 (diff) | |
feat(theme): add optional sidebar background
Diffstat (limited to 'src/ui/sidebar.rs')
| -rw-r--r-- | src/ui/sidebar.rs | 37 |
1 files changed, 37 insertions, 0 deletions
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) @@ -1592,6 +1598,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(); let workspace = Workspace::test_new("one"); |
