﻿using UnityEngine;

namespace JasonStorey
{
    public class UiElement : MonoBehaviour
    {
        [ContextMenu("Show")]
        public void Show() => Visibility.Show();
        [ContextMenu("Hide")]
        public void Hide() => Visibility.Hide();
        [ContextMenu("Turn On")]
        public void TurnOn() => Visibility.TurnOn();
        [ContextMenu("Turn Off")]
        public void TurnOff() => Visibility.TurnOff();

        protected void SetVisibilityStrategy(VisibilityStrategy visibilityStrategy) => _visibility = visibilityStrategy;

        public bool IsShowing => Visibility.IsShowing;
        
        VisibilityStrategy Visibility => _visibility ?? NoVisibilityStrategy.Instance;
        
        VisibilityStrategy _visibility;
    }
}