diff options
| author | Adhyan <adhyanpatel@gmail.com> | 2024-09-02 10:59:23 -0600 |
|---|---|---|
| committer | Adhyan <adhyanpatel@gmail.com> | 2024-09-02 10:59:23 -0600 |
| commit | abf1228a0a837e71d744f5f2881f386387802cc7 (patch) | |
| tree | 111ea617483e12416965bd57f451fc0f75de6aab /src/list/state.rs | |
| parent | 547a9d947bf62052c263a6ee935b5451d3c0dbf1 (diff) | |
search now filters the list first
Diffstat (limited to 'src/list/state.rs')
| -rw-r--r-- | src/list/state.rs | 23 |
1 files changed, 21 insertions, 2 deletions
diff --git a/src/list/state.rs b/src/list/state.rs index be05f3b..8d5bf5b 100644 --- a/src/list/state.rs +++ b/src/list/state.rs @@ -352,6 +352,27 @@ impl<'a> ListState<'a> { .app_state .exercises() .iter() + .filter_map(|exercise| { + match self.filter() { + Filter::None => { + Some(exercise) + }, + Filter::Done => { + if exercise.done { + Some(exercise) + } else { + None + } + }, + Filter::Pending => { + if !exercise.done { + Some(exercise) + } else { + None + } + } + } + }) .enumerate() .find_map(|(i, s)| { if s.name.contains(self.search_query.as_str()) { @@ -363,8 +384,6 @@ impl<'a> ListState<'a> { match idx { Some(i) => { - // ? do we need this function call? - // let exercise_ind = self.selected_to_exercise_ind(i).unwrap(); let exercise_ind = i; self.scroll_state.set_selected(exercise_ind); self.update_rows(); |
