using Core;
using TMPro;
using UnityEngine;
using UnityEngine.UI;
using Script.Gameplay.Interface;

namespace UI
{
    public class EditableComponentViewer : MonoBehaviour
    {
        private IEditableComponent _component;
        [SerializeField] private TMP_Text  componentName;
        [SerializeField] private TMP_Text componentState;
        [SerializeField] private Button closeButton;
        public void SetComponent(IEditableComponent component)
        {
            _component = component;
            if (component != null)
            {
                closeButton.onClick.AddListener(OnClickButton);
                RefreshUI();
            }
        }
        
        private void OnClickButton()
        {
            _component.IsActive = !_component.IsActive;
            RefreshUI();
        }
        
        private void RefreshUI()
        {
            if (_component != null)
            {
                componentName.text = _component.ComponentName;
                componentState.text = _component.IsActive ? "Active" : "Inactive";
            }
        }
    }
}