diff options
author | Piotr Wach <pwach@bloomberg.net> | 2023-12-20 21:24:06 +0100 |
---|---|---|
committer | Piotr Wach <pwach@bloomberg.net> | 2023-12-20 21:24:06 +0100 |
commit | 360a0d72302afb5b068525ef0cec18c21df1b46a (patch) | |
tree | 7ab5f090ea5964fc808acd34dd3780b5b0fe496b | |
parent | ff07f3935bc0a82e52bc169d2739a9bb603d86b8 (diff) |
Show error message on empty search result
-rw-r--r-- | src/interactive/app/eventloop.rs | 66 |
1 files changed, 32 insertions, 34 deletions
diff --git a/src/interactive/app/eventloop.rs b/src/interactive/app/eventloop.rs index 45d4441..5ed7305 100644 --- a/src/interactive/app/eventloop.rs +++ b/src/interactive/app/eventloop.rs @@ -243,39 +243,43 @@ impl AppState { glob_search(tree_view.tree(), self.normal_mode.view_root, glob_pattern); match search_results { Ok(search_results) => { - if let Some(glob_source) = &self.glob_mode { - tree_view.tree_as_mut().remove_node(glob_source.tree_root); - } - - let tree_root = tree_view.tree_as_mut().add_node(EntryData::default()); - let glob_source = NavigationState { - tree_root, - view_root: tree_root, - selected: Some(tree_root), - ..Default::default() - }; - self.glob_mode = Some(glob_source); + if search_results.is_empty() { + self.message = Some("Not found".into()); + } else { + if let Some(glob_source) = &self.glob_mode { + tree_view.tree_as_mut().remove_node(glob_source.tree_root); + } - for idx in search_results { - tree_view.tree_as_mut().add_edge(tree_root, idx, ()); - } + let tree_root = tree_view.tree_as_mut().add_node(EntryData::default()); + let glob_source = NavigationState { + tree_root, + view_root: tree_root, + selected: Some(tree_root), + ..Default::default() + }; + self.glob_mode = Some(glob_source); + + for idx in search_results { + tree_view.tree_as_mut().add_edge(tree_root, idx, ()); + } - let glob_tree_view = GlobTreeView { - traversal: tree_view.traversal_as_mut(), - glob_tree_root: tree_root, - }; + let glob_tree_view = GlobTreeView { + traversal: tree_view.traversal_as_mut(), + glob_tree_root: tree_root, + }; - let new_entries = glob_tree_view.sorted_entries(tree_root, self.sorting); + let new_entries = glob_tree_view.sorted_entries(tree_root, self.sorting); - let new_entries = self - .navigation_mut() - .selected - .map(|previously_selected| (previously_selected, new_entries)); + let new_entries = self + .navigation_mut() + .selected + .map(|previously_selected| (previously_selected, new_entries)); - self.enter_node(new_entries); - self.focussed = Main; + self.enter_node(new_entries); + self.focussed = Main; + } } - _ => self.message = Some("Glob search error!".into()), + _ => self.message = Some("Search error, try again".into()), } } @@ -320,13 +324,7 @@ impl AppState { traversal: tree_view.traversal_as_mut(), }; - let new_entries = self.navigation().selected.map(|previously_selected| { - ( - previously_selected, - normal_tree_view.sorted_entries(self.navigation().view_root, self.sorting), - ) - }); - self.enter_node(new_entries); + self.entries = normal_tree_view.sorted_entries(self.navigation().view_root, self.sorting); } } |