WIP: Edit an existing task

This commit is contained in:
Joseph Ferano 2023-06-06 21:38:36 +07:00
parent da10719250
commit bef0836184
3 changed files with 19 additions and 7 deletions

View File

@ -61,13 +61,14 @@ pub enum TaskEditFocus {
Title,
Description,
CreateBtn,
CancelBtn
CancelBtn,
}
pub struct TaskState<'a> {
pub title: TextArea<'a>,
pub description: TextArea<'a>,
pub focus: TaskEditFocus
pub focus: TaskEditFocus,
pub is_edit: bool
}
impl Default for TaskState<'_> {
@ -75,7 +76,8 @@ impl Default for TaskState<'_> {
TaskState {
title: TextArea::default(),
description: TextArea::default(),
focus: TaskEditFocus::Title
focus: TaskEditFocus::Title,
is_edit: false
}
}
}
@ -140,6 +142,16 @@ impl Column {
self.selected_task_idx = self.tasks.len() - 1;
}
pub fn get_task_state_from_curr_selected(&self) -> Option<TaskState> {
self.get_selected_task().map(|t| {
TaskState {
title: TextArea::from(t.title.chars()),
description: TextArea::from(t.description.chars()),
focus: TaskEditFocus::Title,
is_edit: true
}
})
}
}
impl Project {

View File

@ -75,10 +75,8 @@ pub fn handle_input(state: &mut AppState) -> Result<(), std::io::Error> {
KeyCode::Char('K') => project.move_task_up(),
KeyCode::Char('n') => state.task_edit_state = Some(TaskState::default()),
KeyCode::Char('e') => {
match state.task_edit_state {
None => state.task_edit_state = Some(TaskState::default()),
Some(_) => state.task_edit_state = None,
}
let task = column.get_task_state_from_curr_selected();
state.task_edit_state = task;
}
KeyCode::Char('D') => column.remove_task(),
_ => {}
@ -88,3 +86,4 @@ pub fn handle_input(state: &mut AppState) -> Result<(), std::io::Error> {
}
Ok(())
}

View File

@ -1,3 +1,4 @@
#![deny(rust_2018_idioms)]
#![allow(unused_imports)]
#![allow(dead_code)]
use kanban_tui::*;