diff options
| author | mo8it <mo8it@proton.me> | 2024-04-18 12:41:17 +0200 |
|---|---|---|
| committer | mo8it <mo8it@proton.me> | 2024-04-18 12:41:17 +0200 |
| commit | 01e6732e4d920d9a1859e05fa28382e4307571af (patch) | |
| tree | 122060cdc0ef3f81d367e0afc7b0e3e9d29d33ee /src/list/state.rs | |
| parent | f04089b8bc724d41dcd26117c85f32328b5eb597 (diff) | |
Improve resetting
Diffstat (limited to 'src/list/state.rs')
| -rw-r--r-- | src/list/state.rs | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/src/list/state.rs b/src/list/state.rs index 2a1fef1..0253bb9 100644 --- a/src/list/state.rs +++ b/src/list/state.rs @@ -217,23 +217,22 @@ impl<'a> UiState<'a> { return Ok(self); }; - let (ind, exercise) = self + let ind = self .app_state .exercises() .iter() .enumerate() .filter_map(|(ind, exercise)| match self.filter { - Filter::Done => exercise.done.then_some((ind, exercise)), - Filter::Pending => (!exercise.done).then_some((ind, exercise)), - Filter::None => Some((ind, exercise)), + Filter::Done => exercise.done.then_some(ind), + Filter::Pending => (!exercise.done).then_some(ind), + Filter::None => Some(ind), }) .nth(selected) .context("Invalid selection index")?; - exercise.reset()?; + let exercise_path = self.app_state.reset_exercise_by_ind(ind)?; self.message - .write_fmt(format_args!("The exercise {exercise} has been reset!"))?; - self.app_state.set_pending(ind)?; + .write_fmt(format_args!("The exercise {exercise_path} has been reset"))?; Ok(self.with_updated_rows()) } |
