using UnityEngine;

namespace MajacloudSdk.Samples.Starter
{
    /// <summary>
    /// Keeps a centred column at most <c>maxWidth</c> wide, so the demo reads well in
    /// portrait and landscape. Runs in Play mode only so opening a scene never dirties it.
    /// </summary>
    [RequireComponent(typeof(RectTransform))]
    public sealed class MaxWidthColumn : MonoBehaviour
    {
        [SerializeField] private float maxWidth = 1000f;
        [SerializeField] private float margin = 32f;

        private void OnEnable() => Apply();

        private void Update() => Apply();

        private void Apply()
        {
            var rect = (RectTransform)transform;
            if (!(rect.parent is RectTransform parent)) return;
            float width = Mathf.Max(0f, Mathf.Min(maxWidth, parent.rect.width - margin * 2f));
            if (!Mathf.Approximately(rect.sizeDelta.x, width)) rect.sizeDelta = new Vector2(width, rect.sizeDelta.y);
        }
    }
}
