using Models;

namespace ShoopNCook.Views
{
    public partial class RecipeView : ContentView
    {
        private readonly Action callback;
        public RecipeInfo Info { get; private init; }

        public RecipeView(RecipeInfo info, Action callback)
        {
            this.callback = callback;
            Info = info;
            BindingContext = info;
            InitializeComponent();
            Note = info.AverageNote;
        }

        public float Note
        {
            set => SetNote(value);
        }


        private void SetNote(float note)
        {
            note = (uint)note; //truncate integer as we currently do not handle semi stars
            foreach (Image img in Stars.Children.Reverse())
            {
                if (note > 0)
                {
                    img.Opacity = 1;
                    note--;
                }
                else img.Opacity = 0;
            }
        }

        private void OnRecipeTapped(object sender, EventArgs e)
        {
            callback();
        }
    }
}
