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