diff options
| author | mo8it <mo8it@proton.me> | 2024-08-25 20:31:08 +0200 |
|---|---|---|
| committer | mo8it <mo8it@proton.me> | 2024-08-25 20:31:08 +0200 |
| commit | 360605e2840d7b8876afac6df5178c068484cd57 (patch) | |
| tree | e453cf5ab30f40e976ce16ee373a2b0fb2f88283 /src/watch/state.rs | |
| parent | 47976caa69e24ea9ee5d38918a0abea89ff10983 (diff) | |
| parent | 64772544fad6788fd3fce5db3f357dba6f2d8d23 (diff) | |
Merge branch 'rm-ratatui'
Diffstat (limited to 'src/watch/state.rs')
| -rw-r--r-- | src/watch/state.rs | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/src/watch/state.rs b/src/watch/state.rs index 6bf8e69..40e3d3e 100644 --- a/src/watch/state.rs +++ b/src/watch/state.rs @@ -1,5 +1,5 @@ use anyhow::Result; -use ratatui::crossterm::{ +use crossterm::{ style::{style, Stylize}, terminal, }; @@ -9,7 +9,7 @@ use crate::{ app_state::{AppState, ExercisesProgress}, clear_terminal, exercise::{RunnableExercise, OUTPUT_CAPACITY}, - progress_bar::progress_bar, + term::progress_bar, terminal_link::TerminalFileLink, }; @@ -76,7 +76,8 @@ impl<'a> WatchState<'a> { self.done_status = DoneStatus::Pending; } - self.render() + self.render()?; + Ok(()) } pub fn handle_file_change(&mut self, exercise_ind: usize) -> Result<()> { @@ -120,7 +121,7 @@ impl<'a> WatchState<'a> { self.writer.flush() } - pub fn render(&mut self) -> Result<()> { + pub fn render(&mut self) -> io::Result<()> { // Prevent having the first line shifted if clearing wasn't successful. self.writer.write_all(b"\n")?; clear_terminal(&mut self.writer)?; @@ -155,14 +156,15 @@ impl<'a> WatchState<'a> { } let line_width = terminal::size()?.0; - let progress_bar = progress_bar( + progress_bar( + &mut self.writer, self.app_state.n_done(), self.app_state.exercises().len() as u16, line_width, )?; writeln!( self.writer, - "{progress_bar}Current exercise: {}", + "\nCurrent exercise: {}", self.app_state.current_exercise().terminal_link(), )?; @@ -171,7 +173,7 @@ impl<'a> WatchState<'a> { Ok(()) } - pub fn show_hint(&mut self) -> Result<()> { + pub fn show_hint(&mut self) -> io::Result<()> { self.show_hint = true; self.render() } |
