You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
ShopNCook/Views/Components/OwnedRecipeView.xaml.cs

62 lines
1.3 KiB

using Models;
namespace ShoopNCook.Views;
public partial class OwnedRecipeView : ContentView
{
private readonly Action clickCallback;
private readonly Action removeCallback;
private readonly RecipeInfo recipeInfo;
public OwnedRecipeView(RecipeInfo info, Action onClickCallback, Action onRemoveCallback)
{
InitializeComponent();
RecipeImage.Source = ImageSource.FromUri(info.Image);
Note = info.AverageNote;
Title = info.Name;
this.recipeInfo = info;
this.clickCallback = onClickCallback;
this.removeCallback = onRemoveCallback;
}
public bool IsViewing(RecipeInfo info)
{
return recipeInfo == info;
}
public float Note
{
set => SetNote(value);
}
public string Title
{
set => TitleLabel.Text = value;
}
private void SetNote(float note)
{
int i = 1;
foreach (Image img in Stars.Children)
{
if (i < note)
{
img.Opacity = 0;
i++;
}
else img.Opacity = 1;
}
}
private void OnViewTapped(object sender, TappedEventArgs e)
{
clickCallback();
}
private void OnRemoveButtonTapped(object sender, TappedEventArgs e)
{
removeCallback();
}
}