using System; using System.Collections; using System.Collections.Generic; using System.Linq; using System.Text; using TMPro; using UnityEngine; using UnityEngine.UI; using UnityEngine.Networking; public class Save_Email : MonoBehaviour { enum EmailNameState { EmailValid, EmailInvalid, EmailEmpty, Unread } [SerializeField] GameObject _emailPnl; [SerializeField] TMP_InputField _emailInput; [SerializeField] GameObject _termAndConditionsPanelPrefab; [SerializeField] GameObject _termAndConditionsPanel; [SerializeField] Toggle _acceptToggle; [SerializeField] Button _acceptButton; [SerializeField] GameObject _validateButton; [Header("Email sent Callback")] [SerializeField] GameObject _emailSentPanelPrefab; [SerializeField] GameObject _emailSentPanel; [SerializeField] TextMeshProUGUI _emailConfirmationText; [SerializeField] Dictionary _emailErrorStateTexts; [SerializeField] GameObject _errorMessageContainer; string _emailAddress; bool _termsAccepted = false; bool _isEmailValid = false; public void OpenSaveEmailPanel() { DOIT.CloseALLPNL(); if (_validateButton) { _validateButton.SetActive(false); } if(_errorMessageContainer != null) { List errorMessages = new(); for(int i = 0; i < _errorMessageContainer.transform.childCount; i++) { if(_errorMessageContainer.transform.GetChild(i).TryGetComponent(out var text)) { errorMessages.Add(text); } } //List errorMessages = new List(_errorMessageContainer.GetComponentsInChildren()); if(_emailErrorStateTexts == null) { _emailErrorStateTexts = new Dictionary() { { EmailNameState.Unread ,errorMessages[0]} , { EmailNameState.EmailInvalid ,errorMessages[1]} , { EmailNameState.EmailEmpty ,errorMessages[2]} }; } } if(_acceptToggle == null) { _acceptToggle = transform.GetComponentInChildren(); } foreach (var item in _emailErrorStateTexts) { item.Value.gameObject.SetActive(false); } this.gameObject.SetActive(true); } public void ReadTermsAndConditions() { if(_termAndConditionsPanelPrefab == null) { Debug.LogError("Term and conditions panel prefab is null"); return; } if(_termAndConditionsPanel == null) { _termAndConditionsPanel = Instantiate(_termAndConditionsPanelPrefab, _emailPnl.transform.parent); } if(_acceptButton == null) { _acceptButton = _termAndConditionsPanel.transform.Find("AcceptButton").GetComponent