WIP: Edit an existing task
This commit is contained in:
parent
da10719250
commit
bef0836184
18
src/app.rs
18
src/app.rs
@ -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 {
|
||||
|
@ -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(())
|
||||
}
|
||||
|
||||
|
@ -1,3 +1,4 @@
|
||||
#![deny(rust_2018_idioms)]
|
||||
#![allow(unused_imports)]
|
||||
#![allow(dead_code)]
|
||||
use kanban_tui::*;
|
||||
|
Loading…
x
Reference in New Issue
Block a user