fix date sorting for cal view, wire in more colors in places

ada2292 · gmorell · 2025-01-12 05:43

4 files +11 -8

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