using Cysharp.Threading.Tasks;
using Cysharp.Threading.Tasks.Linq;
using ScenarioFlow.Tasks;
using TMPro;
using UnityEngine;
using UnityEngine.UI;

namespace HowToChooseTokenCode
{
	public class SkipActivator : MonoBehaviour
    {
        [SerializeField]
        private Button skipButton;
        [SerializeField]
        private TextMeshProUGUI skipButtonText;

        private static readonly float skipWaitTime = 0.01f;

        public void ActivateSkipButton(ISkipActivator skipActivator)
        {
            skipActivator.Duration = skipWaitTime;
            skipButton.OnClickAsAsyncEnumerable(destroyCancellationToken)
                .ForEachAsync(_ =>
                {
                    skipActivator.IsActive = !skipActivator.IsActive;
                    skipButtonText.text = skipActivator.IsActive ? "Skip ON" : "SKip OFF";
                }, destroyCancellationToken);
        }
    }
}