using System.Collections;
using System.Collections.Generic;
using Unity.VisualScripting;
using UnityEngine;
using UnityEngine.UI;

[ExecuteAlways]
public class UIResizable : MonoBehaviour
{
    public Slider slider;
    public RectTransform rectTransform;
    public RectTransform emptyBodyPanel;

    private UIManager UI;
    
    // Start is called before the first frame update
    void Start()
    {
        slider.onValueChanged.AddListener(OnSliderValueChanged);
        UI = GetComponent<UIManager>();
    }

    // Update is called once per frame
    public void OnSliderValueChanged(float value)
    {
        RectTransform sliderTransform = slider.transform as RectTransform;
        float calculatedHeight = sliderTransform.rect.height * value;
        calculatedHeight *= sliderTransform.rect.height - slider.handleRect.rect.height;
        calculatedHeight /= sliderTransform.rect.height;
        calculatedHeight += slider.handleRect.rect.height;

        rectTransform.sizeDelta = new Vector2(rectTransform.sizeDelta.x, calculatedHeight);
        emptyBodyPanel.sizeDelta = new Vector2(rectTransform.sizeDelta.x, calculatedHeight);
        
        UI.Redraw(emptyBodyPanel.transform);
    }
}
