Update project display and assignment dialog

This commit is contained in:
Ian Keane 2025-11-23 13:02:13 -05:00
parent e661ad8ba1
commit f9459edf09
2 changed files with 26 additions and 22 deletions

View file

@ -1213,8 +1213,8 @@ impl App {
fn start_reassign_project(&mut self) {
if let Some(item) = self.get_current_item() {
self.current_screen = Screen::ReassignProject;
// Pre-fill with current project if it exists
self.reassign_project_buffer = item.tags.first().cloned().unwrap_or_default();
// Pre-fill with current project (the name field)
self.reassign_project_buffer = item.name.clone();
self.reassign_project_cursor = self.reassign_project_buffer.len();
}
}
@ -1280,24 +1280,21 @@ impl App {
let index = self.state.selected_indices[self.state.current_pane];
let needs_restart = if let Some(item) = items.get_mut(index) {
// Update the tags
if self.reassign_project_buffer.is_empty() {
item.tags.clear();
} else {
item.tags = vec![self.reassign_project_buffer.clone()];
}
// Update the project name (item.name field)
let old_name = item.name.clone();
item.name = self.reassign_project_buffer.clone();
// Check if this is the active timer
self.state
.active_timer
.as_ref()
.map(|(active, _)| active.name == item.name)
.map(|(active, _)| active.name == old_name)
.unwrap_or(false)
} else {
false
};
// If this was the active timer, restart it with new tags
// If this was the active timer, restart it with new project name
if needs_restart {
let item = items[index].clone();
self.state.stop_timer()?;