diff options
| author | mo8it <mo8it@proton.me> | 2024-04-28 23:21:13 +0200 |
|---|---|---|
| committer | mo8it <mo8it@proton.me> | 2024-04-28 23:21:13 +0200 |
| commit | 1508938fed4e3800dcf45c807f67e87ebe8ca30b (patch) | |
| tree | 4db2acf72626e13ce7938faeb8c81929345ebd9e | |
| parent | aedeff8b243bad9205b84a657789b59928bf6524 (diff) | |
Highlight the active filter
| -rw-r--r-- | src/list/state.rs | 24 |
1 files changed, 19 insertions, 5 deletions
diff --git a/src/list/state.rs b/src/list/state.rs index 77f0936..0f2a1c8 100644 --- a/src/list/state.rs +++ b/src/list/state.rs @@ -2,7 +2,7 @@ use anyhow::{Context, Result}; use ratatui::{ layout::{Constraint, Rect}, style::{Style, Stylize}, - text::Span, + text::{Line, Span}, widgets::{Block, Borders, HighlightSpacing, Paragraph, Row, Table, TableState}, Frame, }; @@ -193,11 +193,25 @@ impl<'a> UiState<'a> { let message = if self.message.is_empty() { // Help footer. - Span::raw( - "↓/j ↑/k home/g end/G │ <c>ontinue at │ <r>eset │ filter <d>one/<p>ending │ <q>uit", - ) + let mut spans = Vec::with_capacity(4); + spans.push(Span::raw( + "↓/j ↑/k home/g end/G │ <c>ontinue at │ <r>eset │ filter ", + )); + match self.filter { + Filter::Done => { + spans.push("<d>one".underlined().magenta()); + spans.push(Span::raw("/<p>ending")); + } + Filter::Pending => { + spans.push(Span::raw("<d>one/")); + spans.push("<p>ending".underlined().magenta()); + } + Filter::None => spans.push(Span::raw("<d>one/<p>ending")), + } + spans.push(Span::raw(" │ <q>uit")); + Line::from(spans) } else { - self.message.as_str().light_blue() + Line::from(self.message.as_str().light_blue()) }; frame.render_widget( message, |
