refactor: log search scroll
This commit is contained in:
@@ -741,7 +741,7 @@ impl Logs {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/// Search through the logs for a matching string
|
/// Search through the logs for a matching string
|
||||||
pub fn search(&mut self, case_sensitive: bool) {
|
pub fn search(&mut self, case_sensitive: bool, scroll: bool) {
|
||||||
if let Some(search_term) = self.search_term.as_ref() {
|
if let Some(search_term) = self.search_term.as_ref() {
|
||||||
let term = if case_sensitive {
|
let term = if case_sensitive {
|
||||||
search_term.to_owned()
|
search_term.to_owned()
|
||||||
@@ -768,17 +768,9 @@ impl Logs {
|
|||||||
.then_some(index)
|
.then_some(index)
|
||||||
})
|
})
|
||||||
.collect();
|
.collect();
|
||||||
|
if !self.search_results.is_empty() && scroll {
|
||||||
if !self.search_results.is_empty() {
|
self.lines.state.select(self.search_results.last().copied());
|
||||||
if let Some(currently_selected) = self.lines.state.selected()
|
self.offset = 0;
|
||||||
&& !self.search_results.contains(¤tly_selected)
|
|
||||||
{
|
|
||||||
self.lines.state.select(self.search_results.last().copied());
|
|
||||||
self.offset = 0;
|
|
||||||
} else {
|
|
||||||
self.lines.state.select(self.search_results.last().copied());
|
|
||||||
self.offset = 0;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
self.search_results.clear();
|
self.search_results.clear();
|
||||||
@@ -792,7 +784,7 @@ impl Logs {
|
|||||||
} else {
|
} else {
|
||||||
self.search_term = Some(format!("{c}"));
|
self.search_term = Some(format!("{c}"));
|
||||||
}
|
}
|
||||||
self.search(case_sensitive);
|
self.search(case_sensitive, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Delete the final char of the filter term
|
/// Delete the final char of the filter term
|
||||||
@@ -803,7 +795,7 @@ impl Logs {
|
|||||||
self.search_term = None;
|
self.search_term = None;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
self.search(case_sensitive);
|
self.search(case_sensitive, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Remove the filter completely
|
/// Remove the filter completely
|
||||||
@@ -819,7 +811,7 @@ impl Logs {
|
|||||||
self.lines.items.push(line);
|
self.lines.items.push(line);
|
||||||
// Maybe - Ideally we'd re-render here
|
// Maybe - Ideally we'd re-render here
|
||||||
if self.search_term.is_some() {
|
if self.search_term.is_some() {
|
||||||
self.search(case_sensitive);
|
self.search(case_sensitive, false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user