using ShoopNCook.Pages; using Models; namespace ShoopNCook.Views; public partial class RecipeView : ContentView { private readonly Action callback; public RecipeView(RecipeInfo info, Action onClickCallback) { InitializeComponent(); if (info.Image != null) RecipeImage.Source = ImageSource.FromUri(info.Image); Note = info.AverageNote; Title = info.Name; Subtitle = info.CookTimeMins + " min"; callback = onClickCallback; } public float Note { set => SetNote(value); } public string Title { set => TitleLabel.Text = value; } public string Subtitle { set => SubtitleLabel.Text = 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(); } }