summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPiotr Wach <pwach@bloomberg.net>2023-12-20 21:24:06 +0100
committerPiotr Wach <pwach@bloomberg.net>2023-12-20 21:24:06 +0100
commit360a0d72302afb5b068525ef0cec18c21df1b46a (patch)
tree7ab5f090ea5964fc808acd34dd3780b5b0fe496b
parentff07f3935bc0a82e52bc169d2739a9bb603d86b8 (diff)
Show error message on empty search result
-rw-r--r--src/interactive/app/eventloop.rs66
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);
}
}