using System; using AutoCatCore.ViewModel; using Terminal.Gui; namespace ACTerm.Views { public class AuthDialog: Dialog { private AuthViewModel viewModel; private TextField emailField; private TextField passwordField; public AuthDialog(NStack.ustring title, int width, int height, params Button[] buttons): base(title, width, height, buttons) { } public static AuthDialog CreateNew(AuthViewModel VM) { var login = new Button("Login"); var cancel = new Button("Cancel"); var loginLabel = new Label("Email:") { X = 1, Y = 2, Width = 10, Height = 1 }; var passwordLabel = new Label("Password:") { X = 1, Y = 4, Width = 10, Height = 1 }; var dialog = new AuthDialog("AutoCat Login", 60, 10, login, cancel); dialog.emailField = new TextField() { X = 11, Y = 2, Width = Dim.Fill() - 1, Height = 1 }; dialog.passwordField = new TextField() { X = 11, Y = 4, Width = Dim.Fill() - 1, Height = 1, Secret = true }; dialog.Add(loginLabel, dialog.emailField, passwordLabel, dialog.passwordField); dialog.emailField.SetFocus(); dialog.viewModel = VM; cancel.Clicked += () => { Application.RequestStop(); }; login.Clicked += dialog.LoginClicked; return dialog; } async void LoginClicked() { await viewModel.Login(emailField.Text.ToString(), passwordField.Text.ToString()); } } }