using UIFramework;
using UnityEngine;
using UnityEngine.Events;
using UnityEngine.UI;

namespace CustomUI
{
    public class MenuButton : CustomUIComponent
    {
        public ThemeSO theme;
        public MenuButtonSO buttonData;
        public IconsSO icons;

        [SerializeField]
        private Image iconImage;
        [SerializeField]
        private Image border;

        public Style style;
        public Type type;
        public Icon icon;
        public UnityEvent onClick;

        [SerializeField] private Button button;
        [SerializeField] private TextMeshProUGUI buttonText;
        [SerializeField] private RectTransform buttonRect;
        [SerializeField] private RectTransform containerRect;
        [SerializeField] private RectTransform iconRect;
        [SerializeField] private RectTransform textRect;
        [SerializeField] private LayoutElement layoutElement;

        public override void Setup()
        {
            button = GetComponentInChildren<Button>();
            buttonText = GetComponentInChildren<TextMeshProUGUI>();
            iconImage = button.transform.Find("Icon")?.GetComponent<Image>();
            buttonRect = button.GetComponent<RectTransform>();
            containerRect = GetComponent<RectTransform>();
            iconRect = iconImage.GetComponent<RectTransform>();
            textRect = buttonText.GetComponent<RectTransform>();
            layoutElement = GetComponent<LayoutElement>();
        }
(continues)