45 lines
1.5 KiB
C#
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());
|
|
}
|
|
}
|
|
}
|