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