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 { | ||||
|     start_time: Instant, | ||||
|     exit: bool, | ||||
|     exit_time: Option<Instant>, | ||||
|     error: bool, | ||||
|     focus: Focus, | ||||
|     status: Status, | ||||
| @ -123,7 +123,7 @@ impl Display for Session { | ||||
| impl Default for App { | ||||
|     fn default() -> Self { | ||||
|         let start_time = Instant::now(); | ||||
|         let exit = false; | ||||
|         let exit_time = None; | ||||
|         let error = false; | ||||
|         let focus = Focus::User; | ||||
|         let status = Status::Nothing; | ||||
| @ -141,7 +141,7 @@ impl Default for App { | ||||
| 
 | ||||
|         Self { | ||||
|             start_time, | ||||
|             exit, | ||||
|             exit_time, | ||||
|             error, | ||||
|             focus, | ||||
|             status, | ||||
| @ -155,7 +155,10 @@ impl Default for App { | ||||
| impl App { | ||||
|     pub fn run(&mut self, terminal: &mut DefaultTerminal) -> io::Result<()> { | ||||
|         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))?; | ||||
|             self.handle_events()?; | ||||
|         } | ||||
| @ -307,7 +310,7 @@ impl App { | ||||
|     } | ||||
| 
 | ||||
|     fn exit(&mut self) { | ||||
|         self.exit = true; | ||||
|         self.exit_time = Some(Instant::now()); | ||||
|     } | ||||
| 
 | ||||
|     fn submit(&mut self) { | ||||
| @ -326,7 +329,7 @@ impl App { | ||||
|             LoginResult::Success => { | ||||
|                 self.error = false; | ||||
|                 self.status = Status::Success; | ||||
|                 self.exit = true; | ||||
|                 self.exit_time = Some(Instant::now() + Duration::from_millis(300)); | ||||
|             } | ||||
|             LoginResult::Failure => { | ||||
|                 self.error = true; | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Jan-Bulthuis
						Jan-Bulthuis