92 lines
3.0 KiB
C#
92 lines
3.0 KiB
C#
using System.Threading.Tasks;
|
|
using Kill.Managers;
|
|
using Kill.Utils;
|
|
using UnityEngine;
|
|
using UnityEngine.UI;
|
|
|
|
namespace Kill.UI.Pages
|
|
{
|
|
/// <summary>
|
|
/// 注册页面
|
|
/// </summary>
|
|
public class RegisterPanel : LoginSubPageBase
|
|
{
|
|
[Header("输入组件")]
|
|
public InputField emailInput;
|
|
public Toggle privacyToggle;
|
|
[Header("显示组件")]
|
|
public Text errorText;
|
|
|
|
[Header("按钮")]
|
|
public Button nextBtn;
|
|
public Button toLoginBtn;
|
|
public Button privacyLinkBtn;
|
|
|
|
protected override void OnInitialize()
|
|
{
|
|
// 绑定按钮事件
|
|
if (nextBtn != null)
|
|
nextBtn.onClick.AddListener(OnGetCodeAsync);
|
|
|
|
if (toLoginBtn != null)
|
|
toLoginBtn.onClick.AddListener(() => ShowPage(LoginPageCtrl.SubPageType.Login));
|
|
|
|
if (privacyLinkBtn != null)
|
|
privacyLinkBtn.onClick.AddListener(() => LoginPageCtrl.Instance.ShowPrivacyAgreementPlane());
|
|
}
|
|
protected override void OnShow()
|
|
{
|
|
// 页面显示时初始化隐私协议链接的显示状态
|
|
emailInput.text="";
|
|
privacyToggle.isOn = true;
|
|
errorText.text = "";
|
|
}
|
|
private async void OnGetCodeAsync()
|
|
{
|
|
string email = emailInput != null ? emailInput.text : "";
|
|
if (string.IsNullOrEmpty(email) || !ValidationUtils.IsValidEmailStrict(email))
|
|
{
|
|
errorText.text = LanguageManager.Instance.GetLanguage("100006");
|
|
return;
|
|
}
|
|
if (!privacyToggle.isOn)
|
|
{
|
|
LoginPageCtrl.Instance.ShowPrivacyAgreementTip(() =>
|
|
{
|
|
privacyToggle.isOn = true;
|
|
OnGetCodeAsync();
|
|
});
|
|
return;
|
|
}
|
|
|
|
// 保存邮箱到登录控制器
|
|
LoginPageCtrl.Instance.SetCurrentEmail(email);
|
|
// 验证邮箱是否已注册
|
|
await LoginPageCtrl.Instance.CheckEmailRegistered(email,
|
|
onSuccess: async (data) =>
|
|
{
|
|
if (data)
|
|
{
|
|
errorText.text = LanguageManager.Instance.GetLanguage("100007");
|
|
}
|
|
else
|
|
{
|
|
// 设置验证码页面为注册场景
|
|
var verifyPanel = GetSubPage(LoginPageCtrl.SubPageType.VerificationCode) as VerificationCodePanel;
|
|
if (verifyPanel != null)
|
|
{
|
|
verifyPanel.SetSceneType(VerificationCodePanel.CodeSceneType.Register);
|
|
}
|
|
ShowPage(LoginPageCtrl.SubPageType.VerificationCode);
|
|
}
|
|
},
|
|
onError: (code, message) =>
|
|
{
|
|
errorText.text = message;
|
|
}
|
|
);
|
|
|
|
}
|
|
}
|
|
}
|