using TMPro;
using UnityEngine;
using UnityEngine.UI;

namespace MajacloudSdk.Samples.Starter
{
    public sealed class TabBar : MonoBehaviour
    {
        [SerializeField] private Button[] buttons;
        [SerializeField] private GameObject[] pages;
        [SerializeField] private Color activeColor = new Color32(47, 123, 246, 255);
        [SerializeField] private Color inactiveColor = Color.white;
        [SerializeField] private Color activeText = Color.white;
        [SerializeField] private Color inactiveText = new Color32(106, 120, 144, 255);

        private void Awake()
        {
            for (int i = 0; i < buttons.Length; i++)
            {
                int index = i;
                buttons[i].onClick.AddListener(() => Select(index));
            }
        }

        public void Select(int index)
        {
            for (int i = 0; i < pages.Length; i++)
            {
                if (pages[i] != null) pages[i].SetActive(i == index);
            }
            for (int i = 0; i < buttons.Length; i++)
            {
                var image = buttons[i].targetGraphic as Image;
                if (image != null) image.color = i == index ? activeColor : inactiveColor;
                var label = buttons[i].GetComponentInChildren<TMP_Text>();
                if (label != null) label.color = i == index ? activeText : inactiveText;
            }
        }
    }
}
