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…
Reference in New Issue