Made exit indirect and added timeout after successfull login
This commit is contained in:
		
							parent
							
								
									d94aa35576
								
							
						
					
					
						commit
						0ae682ef8b
					
				
							
								
								
									
										15
									
								
								src/main.rs
									
									
									
									
									
								
							
							
						
						
									
										15
									
								
								src/main.rs
									
									
									
									
									
								
							| @ -29,7 +29,7 @@ fn main() -> io::Result<()> { | |||||||
| } | } | ||||||
| struct App { | struct App { | ||||||
|     start_time: Instant, |     start_time: Instant, | ||||||
|     exit: bool, |     exit_time: Option<Instant>, | ||||||
|     error: bool, |     error: bool, | ||||||
|     focus: Focus, |     focus: Focus, | ||||||
|     status: Status, |     status: Status, | ||||||
| @ -123,7 +123,7 @@ impl Display for Session { | |||||||
| impl Default for App { | impl Default for App { | ||||||
|     fn default() -> Self { |     fn default() -> Self { | ||||||
|         let start_time = Instant::now(); |         let start_time = Instant::now(); | ||||||
|         let exit = false; |         let exit_time = None; | ||||||
|         let error = false; |         let error = false; | ||||||
|         let focus = Focus::User; |         let focus = Focus::User; | ||||||
|         let status = Status::Nothing; |         let status = Status::Nothing; | ||||||
| @ -141,7 +141,7 @@ impl Default for App { | |||||||
| 
 | 
 | ||||||
|         Self { |         Self { | ||||||
|             start_time, |             start_time, | ||||||
|             exit, |             exit_time, | ||||||
|             error, |             error, | ||||||
|             focus, |             focus, | ||||||
|             status, |             status, | ||||||
| @ -155,7 +155,10 @@ impl Default for App { | |||||||
| impl App { | impl App { | ||||||
|     pub fn run(&mut self, terminal: &mut DefaultTerminal) -> io::Result<()> { |     pub fn run(&mut self, terminal: &mut DefaultTerminal) -> io::Result<()> { | ||||||
|         self.start_time = Instant::now(); |         self.start_time = Instant::now(); | ||||||
|         while !self.exit { |         while match self.exit_time { | ||||||
|  |             Some(exit_time) => Instant::now() < exit_time, | ||||||
|  |             None => true, | ||||||
|  |         } { | ||||||
|             terminal.draw(|frame| self.draw(frame))?; |             terminal.draw(|frame| self.draw(frame))?; | ||||||
|             self.handle_events()?; |             self.handle_events()?; | ||||||
|         } |         } | ||||||
| @ -307,7 +310,7 @@ impl App { | |||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     fn exit(&mut self) { |     fn exit(&mut self) { | ||||||
|         self.exit = true; |         self.exit_time = Some(Instant::now()); | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     fn submit(&mut self) { |     fn submit(&mut self) { | ||||||
| @ -326,7 +329,7 @@ impl App { | |||||||
|             LoginResult::Success => { |             LoginResult::Success => { | ||||||
|                 self.error = false; |                 self.error = false; | ||||||
|                 self.status = Status::Success; |                 self.status = Status::Success; | ||||||
|                 self.exit = true; |                 self.exit_time = Some(Instant::now() + Duration::from_millis(300)); | ||||||
|             } |             } | ||||||
|             LoginResult::Failure => { |             LoginResult::Failure => { | ||||||
|                 self.error = true; |                 self.error = true; | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Jan-Bulthuis
						Jan-Bulthuis