diff --git a/src/ui/mod.rs b/src/ui/mod.rs index 8ca1ad5..fefeb3c 100644 --- a/src/ui/mod.rs +++ b/src/ui/mod.rs @@ -3,18 +3,18 @@ use crossterm::{ event::{self, DisableMouseCapture, EnableMouseCapture, Event, read}, execute, terminal::{disable_raw_mode, enable_raw_mode, EnterAlternateScreen, LeaveAlternateScreen}, + style::{style}, }; use anyhow::{Error, Result}; use std::io::Stdout; use std::io; -use crossterm::style::style; use tui::{backend::CrosstermBackend, layout::{Constraint, Direction, Layout, Rect}, widgets::{Block, Borders, Widget}, Terminal, Frame}; use tui::layout::Alignment; use tui::style::{Color, Modifier, Style}; use tui::text::{Spans, Span, Text}; use tui::widgets::{Paragraph, Wrap}; use tui_textarea::{Input, Key, TextArea}; - +use tui_textarea::Key::Char; #[derive(Clone, Copy)] enum SetupInputPosition { @@ -198,6 +198,7 @@ impl UI { let mut homeserver = TextArea::default(); let mut username = TextArea::default(); let mut password = TextArea::default(); + let mut password_data = TextArea::default(); homeserver.set_block( @@ -283,7 +284,7 @@ impl UI { SetupInputPosition::Ok }, SetupInputPosition::Ok => { - if app.accounts_manager.add(&homeserver.lines()[0], &username.lines()[0], &password.lines()[0]).await.is_ok() { + if app.accounts_manager.add(&homeserver.lines()[0], &username.lines()[0], &password_data.lines()[0]).await.is_ok() { return Ok(()) } @@ -295,13 +296,18 @@ impl UI { } } input => { - let textarea = match input_index { - SetupInputPosition::Homeserver => &mut homeserver, - SetupInputPosition::Username => &mut username, - SetupInputPosition::Password => &mut password, + match input_index { + SetupInputPosition::Homeserver => { homeserver.input(input); }, + SetupInputPosition::Username => { username.input(input); }, + SetupInputPosition::Password => { + password_data.input(input.clone()); + match input.key { + Char(_) => { password.input(Input { key: Char('*'), ctrl: false, alt: false }); }, + _ => { password.input(input); }, + } + }, _ => continue, - }; - textarea.input(input); + } } }; }