widgets: try and sort the computer todo list by completion state
This commit is contained in:
+2
-1
@@ -1,6 +1,7 @@
|
|||||||
use std::collections::HashMap;
|
use std::collections::HashMap;
|
||||||
|
|
||||||
use chrono::Duration;
|
use chrono::Duration;
|
||||||
|
use itertools::Itertools;
|
||||||
use ratatui::{layout::Rect, style::Style, text::{Line, Text}, widgets::*};
|
use ratatui::{layout::Rect, style::Style, text::{Line, Text}, widgets::*};
|
||||||
use tui_skeleton::Block;
|
use tui_skeleton::Block;
|
||||||
use ratatui::prelude::*;
|
use ratatui::prelude::*;
|
||||||
@@ -16,7 +17,7 @@ impl Widget for TaskList<'_> {
|
|||||||
let borders = Block::bordered().border_style(style::Color::Red).title("Computer Tasks");
|
let borders = Block::bordered().border_style(style::Color::Red).title("Computer Tasks");
|
||||||
let wrap_options_unfinished = textwrap::Options::new(area.width as usize).initial_indent("[ ] ").subsequent_indent(" ");
|
let wrap_options_unfinished = textwrap::Options::new(area.width as usize).initial_indent("[ ] ").subsequent_indent(" ");
|
||||||
let wrap_options_finished = textwrap::Options::new(area.width as usize).initial_indent("[X] ").subsequent_indent(" ");
|
let wrap_options_finished = textwrap::Options::new(area.width as usize).initial_indent("[X] ").subsequent_indent(" ");
|
||||||
let options: Vec<Text> = self.0.iter().map(|(text, is_finished)| {
|
let options: Vec<Text> = self.0.iter().sorted_by(|a, b| Ord::cmp(a.1, b.1)).map(|(text, is_finished)| {
|
||||||
let (options, color) = if *is_finished {
|
let (options, color) = if *is_finished {
|
||||||
(wrap_options_finished.clone(), style::Color::DarkGray)
|
(wrap_options_finished.clone(), style::Color::DarkGray)
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
Reference in New Issue
Block a user