⭐
Log in to mark this repository.
fix date sorting for cal view, wire in more colors in places
ada2292 · gmorell · 2025-01-12 05:43
Files changed
modified
Cargo.lock
+1
−0
@@ -1890,6 +1890,7 @@ dependencies = [
| 1890 | 1890 | "env_logger", |
| 1891 | 1891 | "futures", |
| 1892 | 1892 | "interim", |
| 1893 | + "itertools 0.12.0", | |
| 1893 | 1894 | "lazy_static", |
| 1894 | 1895 | "log", |
| 1895 | 1896 | "ratatui", |
modified
Cargo.toml
+1
−0
@@ -30,3 +30,4 @@ directories = "5.0.1"
| 30 | 30 | lazy_static = "1.5.0" |
| 31 | 31 | colored = { version = "2.2.0" } |
| 32 | 32 | time = "0.3.37" |
| 33 | +itertools = "0.12.0" |
modified
src/do_tui.rs
+9
−8
@@ -13,6 +13,7 @@ use color_eyre::owo_colors::OwoColorize;
| 13 | 13 | use crossterm::event; |
| 14 | 14 | use crossterm::event::{Event, KeyCode, KeyEvent, KeyEventKind}; |
| 15 | 15 | use enum_iterator::{next, Sequence}; |
| 16 | +use itertools::Itertools; | |
| 16 | 17 | use ratatui::prelude::{Constraint, Direction, Layout, Line, Modifier, Span, Style, Stylize, Text}; |
| 17 | 18 | use ratatui::style::palette::material::AMBER; |
| 18 | 19 | use ratatui::style::palette::tailwind::{GREEN, ORANGE, PINK, SLATE, TEAL, WHITE}; |
@@ -167,7 +168,7 @@ pub async fn run_tui(
| 167 | 168 | let mut app = Tui::default(); |
| 168 | 169 | app.reload(&db).await?; |
| 169 | 170 | loop { |
| 170 | − terminal.draw(|f| render(f, &mut app)); | |
| 171 | + let _ = terminal.draw(|f| render(f, &mut app)); | |
| 171 | 172 | match event::read()? { |
| 172 | 173 | Event::Key(key_event) if key_event.kind == KeyEventKind::Press => { |
| 173 | 174 | match key_event.code { |
@@ -866,7 +867,6 @@ fn render(f: &mut Frame, app: &mut Tui) {
| 866 | 867 | .unwrap() |
| 867 | 868 | .replace_day(1) |
| 868 | 869 | .unwrap(); |
| 869 | − &app.sigdate_list.sort_by(|a, b| a.date.cmp(&b.date)); | |
| 870 | 870 | let as_upcoming = &app |
| 871 | 871 | .sigdate_list |
| 872 | 872 | .iter() |
@@ -892,6 +892,7 @@ fn render(f: &mut Frame, app: &mut Tui) {
| 892 | 892 | trait_defaults: app.def_trait_list.clone(), |
| 893 | 893 | } |
| 894 | 894 | }) |
| 895 | + .sorted_by(|a, b| a.date.date.cmp(&b.date.date)) | |
| 895 | 896 | .collect::<Vec<SigDateAndProps>>(); |
| 896 | 897 | let mut event_list = CalendarEventStore::today( |
| 897 | 898 | Style::default() |
@@ -1056,19 +1057,19 @@ impl From<&SigDateAndProps> for ListItem<'_> {
| 1056 | 1057 | .find(|q| q.key == value.date.event && q.is_date == true); |
| 1057 | 1058 | let line = match (value.date.do_remind, default) { |
| 1058 | 1059 | (true, Some(t)) => { |
| 1059 | − Line::styled(format!(" ✓ {} {} {}", t.symbol, n, value.date.date), WHITE) | |
| 1060 | + Line::styled(format!(" ✓ {} {:6} {}", t.symbol, n, value.date.date), WHITE) | |
| 1060 | 1061 | } |
| 1061 | 1062 | (true, None) => Line::styled( |
| 1062 | − format!(" ✓ 📅 {} {} ({})", n, value.date.date, value.date.event), | |
| 1063 | + format!(" ✓ 📅 {:6} {} ({})", n, value.date.date, value.date.event), | |
| 1063 | 1064 | WHITE, |
| 1064 | 1065 | ), |
| 1065 | 1066 | (false, Some(t)) => Line::styled( |
| 1066 | − format!(" ☐ {} {} {}", t.symbol, n, value.date.date), | |
| 1067 | + format!(" ☐ {} {:6} {}", t.symbol, n, value.date.date), | |
| 1067 | 1068 | SLATE.c500, |
| 1068 | 1069 | ), |
| 1069 | 1070 | |
| 1070 | 1071 | (false, None) => Line::styled( |
| 1071 | − format!(" ☐ 📅 {} {} ({})", n, value.date.date, value.date.event), | |
| 1072 | + format!(" ☐ 📅 {:6} {} ({})", n, value.date.date, value.date.event), | |
| 1072 | 1073 | SLATE.c500, |
| 1073 | 1074 | ), |
| 1074 | 1075 | }; |
@@ -1091,7 +1092,7 @@ impl From<&ppl::Model> for ListItem<'_> {
| 1091 | 1092 | impl From<&tier_defaults::Model> for ListItem<'_> { |
| 1092 | 1093 | fn from(value: &tier_defaults::Model) -> Self { |
| 1093 | 1094 | let line = match value.enabled { |
| 1094 | − true => Line::styled(format!(" ✓ {:?} {}", value.symbol, value.key), WHITE), | |
| 1095 | + true => Line::styled(format!(" ✓ {:?} {}", value.symbol, value.key), lcolor(&value.color.clone().unwrap_or("".to_string()))), | |
| 1095 | 1096 | false => Line::styled(format!(" ☐ {:?} {}", value.symbol, value.key), SLATE.c500), |
| 1096 | 1097 | }; |
| 1097 | 1098 |
@@ -1101,7 +1102,7 @@ impl From<&tier_defaults::Model> for ListItem<'_> {
| 1101 | 1102 | impl From<&trait_defaults::Model> for ListItem<'_> { |
| 1102 | 1103 | fn from(value: &trait_defaults::Model) -> Self { |
| 1103 | 1104 | let line = match value.enabled { |
| 1104 | − true => Line::styled(format!(" ✓ {} {}", value.symbol, value.key), WHITE), | |
| 1105 | + true => Line::styled(format!(" ✓ {} {}", value.symbol, value.key), lcolor(&value.color)), | |
| 1105 | 1106 | false => Line::styled(format!(" ☐ {} {}", value.symbol, value.key), SLATE.c500), |
| 1106 | 1107 | }; |
| 1107 | 1108 |
Parents: f7cb98f