diff options
| author | Ogulcan Celik <ogulcancelik@gmail.com> | 2026-05-20 22:08:04 +0300 |
|---|---|---|
| committer | Ogulcan Celik <ogulcancelik@gmail.com> | 2026-05-20 22:08:04 +0300 |
| commit | c584037c77c63f6a08f8837f357c89432b8043e7 (patch) | |
| tree | 16647d6628a11dbbf5e576fb86f2a87b507e202e /src/ui/menus.rs | |
| parent | f7b26a911772dab16a49d982002d2bbe58e0956b (diff) | |
feat: badge outdated integration updates
Diffstat (limited to 'src/ui/menus.rs')
| -rw-r--r-- | src/ui/menus.rs | 65 |
1 files changed, 22 insertions, 43 deletions
diff --git a/src/ui/menus.rs b/src/ui/menus.rs index d17aa897..aa5e3b79 100644 --- a/src/ui/menus.rs +++ b/src/ui/menus.rs @@ -148,53 +148,32 @@ pub(super) fn render_global_launcher_menu(app: &AppState, frame: &mut Frame) { let selected = idx == app.global_menu.highlighted; let rect = Rect::new(inner.x, y, inner.width, 1); - if *item == "update ready" { - let line = if selected { - Line::from(vec![ - Span::styled( - " update ready ", - Style::default() - .fg(panel_contrast_fg(&app.palette)) - .bg(app.palette.accent) - .add_modifier(Modifier::BOLD), - ), - Span::styled( - "● ", - Style::default() - .fg(panel_contrast_fg(&app.palette)) - .bg(app.palette.accent) - .add_modifier(Modifier::BOLD), - ), - ]) - } else { - Line::from(vec![ - Span::styled(" update ready ", Style::default().fg(app.palette.text)), - Span::styled( - "● ", - Style::default() - .fg(app.palette.accent) - .add_modifier(Modifier::BOLD), - ), - ]) - }; - frame.render_widget(Paragraph::new(line).alignment(Alignment::Left), rect); - continue; - } - - let style = if selected { + let selected_style = Style::default() + .fg(panel_contrast_fg(&app.palette)) + .bg(app.palette.accent) + .add_modifier(Modifier::BOLD); + let item_style = if selected { + selected_style + } else { + Style::default().fg(app.palette.text) + }; + let badge_style = if selected { + selected_style + } else { Style::default() - .fg(panel_contrast_fg(&app.palette)) - .bg(app.palette.accent) + .fg(app.palette.accent) .add_modifier(Modifier::BOLD) + }; + + let line = if app.global_menu_item_has_badge(item) { + Line::from(vec![ + Span::styled(" ●", badge_style), + Span::styled(format!(" {item} "), item_style), + ]) } else { - Style::default().fg(app.palette.text) + Line::from(Span::styled(format!(" {item} "), item_style)) }; - frame.render_widget( - Paragraph::new(format!(" {item} ")) - .style(style) - .alignment(Alignment::Left), - rect, - ); + frame.render_widget(Paragraph::new(line).alignment(Alignment::Left), rect); } } |
