AutoCatUwp/ACTerm/Views/AuthDialog.cs

45 lines
1.5 KiB
C#

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());
}
}
}