67 lines
No EOL
2 KiB
C#
67 lines
No EOL
2 KiB
C#
using System;
|
|
using System.Text.RegularExpressions;
|
|
using _Hub.Scripts.Network;
|
|
using TMPro;
|
|
using UnityEngine;
|
|
using UnityEngine.UI;
|
|
|
|
namespace _Hub.Scripts.UI
|
|
{
|
|
public class LoginUI : MonoBehaviour
|
|
{
|
|
#region Variables
|
|
|
|
private const int _maxUsernameLength = 15;
|
|
private const int _maxPasswordLength = 15;
|
|
[SerializeField] private Button loginButton;
|
|
[SerializeField] private TMP_InputField usernameInputField;
|
|
[SerializeField] private TMP_InputField passwordInputField;
|
|
private string _username = String.Empty;
|
|
private string _password = String.Empty;
|
|
|
|
#endregion
|
|
|
|
#region Unity
|
|
|
|
private void Awake()
|
|
{
|
|
loginButton.onClick.AddListener(OnLoginClick);
|
|
usernameInputField.onValueChanged.AddListener(UpdateUsername);
|
|
passwordInputField.onValueChanged.AddListener(UpdatePassword);
|
|
}
|
|
|
|
private void OnLoginClick()
|
|
{
|
|
}
|
|
|
|
private void UpdateUsername(string username)
|
|
{
|
|
_username = username;
|
|
Debug.Log("Username:" + username);
|
|
ValidateAndUpdateUI();
|
|
}
|
|
|
|
private void UpdatePassword(string password)
|
|
{
|
|
_password = password;
|
|
Debug.Log("Password:" + password);
|
|
ValidateAndUpdateUI();
|
|
}
|
|
|
|
private void ValidateAndUpdateUI()
|
|
{
|
|
var usernameRegex = Regex.Match(_username, "^[a-zA-Z0-9]+$");
|
|
var interactable = (!string.IsNullOrWhiteSpace(_username) && !string.IsNullOrWhiteSpace(_password) &&
|
|
(_maxUsernameLength >= _username.Length && _maxPasswordLength >= _password.Length) &&
|
|
usernameRegex.Success);
|
|
EnableLoginButton(interactable);
|
|
}
|
|
|
|
private void EnableLoginButton(bool interactable)
|
|
{
|
|
loginButton.interactable = interactable;
|
|
}
|
|
|
|
#endregion
|
|
}
|
|
} |