Do not allow search with empty value

This commit is contained in:
Jeremy Soller 2023-11-30 10:39:13 -07:00
parent 7d23b093fc
commit 1bc908b92f
No known key found for this signature in database
GPG key ID: DCFCA852D3906975

View file

@ -922,43 +922,46 @@ impl Application for App {
return widget::text_input::focus(self.project_search_id.clone()); return widget::text_input::focus(self.project_search_id.clone());
} }
Message::ProjectSearchSubmit => { Message::ProjectSearchSubmit => {
//TODO: cache projects outside of nav model? //TODO: Figure out length requirements?
let mut project_paths = Vec::new(); if !self.project_search_value.is_empty() {
for id in self.nav_model.iter() { //TODO: cache projects outside of nav model?
match self.nav_model.data(id) { let mut project_paths = Vec::new();
Some(ProjectNode::Folder { path, root, .. }) => { for id in self.nav_model.iter() {
if *root { match self.nav_model.data(id) {
project_paths.push(path.clone()) Some(ProjectNode::Folder { path, root, .. }) => {
if *root {
project_paths.push(path.clone())
}
} }
_ => {}
} }
_ => {}
} }
}
let project_search_value = self.project_search_value.clone(); let project_search_value = self.project_search_value.clone();
let mut project_search_result = ProjectSearchResult { let mut project_search_result = ProjectSearchResult {
value: project_search_value.clone(), value: project_search_value.clone(),
in_progress: true, in_progress: true,
files: Vec::new(), files: Vec::new(),
}; };
self.project_search_result = Some(project_search_result.clone()); self.project_search_result = Some(project_search_result.clone());
return Command::perform( return Command::perform(
async move { async move {
let task_res = tokio::task::spawn_blocking(move || { let task_res = tokio::task::spawn_blocking(move || {
project_search_result.search_projects(project_paths); project_search_result.search_projects(project_paths);
message::app(Message::ProjectSearchResult(project_search_result)) message::app(Message::ProjectSearchResult(project_search_result))
}) })
.await; .await;
match task_res { match task_res {
Ok(message) => message, Ok(message) => message,
Err(err) => { Err(err) => {
log::error!("failed to run search task: {}", err); log::error!("failed to run search task: {}", err);
message::none() message::none()
}
} }
} },
}, |x| x,
|x| x, );
); }
} }
Message::ProjectSearchValue(value) => { Message::ProjectSearchValue(value) => {
self.project_search_value = value; self.project_search_value = value;