From 829cbaf2d0fe95abc9c65b1e34e209fc32952805 Mon Sep 17 00:00:00 2001 From: Julian T Date: Fri, 17 May 2024 20:22:23 +0200 Subject: Stuff i dont remember, sorry --- src/render/tasks.rs | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 src/render/tasks.rs (limited to 'src/render/tasks.rs') diff --git a/src/render/tasks.rs b/src/render/tasks.rs new file mode 100644 index 0000000..0f6a79a --- /dev/null +++ b/src/render/tasks.rs @@ -0,0 +1,34 @@ +use ratatui::{layout::Constraint, widgets::{Row, Table, Widget}, prelude::Text}; + +use crate::model::Task; + + + +#[derive(Debug)] +pub struct TaskList<'a> { + tasks: &'a[Task] +} + +impl<'a> TaskList<'a> { + pub fn new(tasks: &'a[Task]) -> TaskList<'a> { + TaskList { + tasks + } + } +} + +impl<'a> Widget for &TaskList<'a> { + fn render(self, area: ratatui::prelude::Rect, buf: &mut ratatui::prelude::Buffer) { + let rows: Vec = self.tasks.into_iter() + .map(|t: &Task| Row::new(vec![Text::from(t.name.as_str()), Text::from(t.description.as_str())])) + .collect(); + + let widths = [ + Constraint::Percentage(50), + Constraint::Fill(1), + ]; + + Table::new(rows, widths) + .render(area, buf); + } +} -- cgit v1.2.3