using Microsoft.AspNetCore.Components; using Refit; using WatchIt.DTO.Models.Generics.Image; namespace WatchIt.Website.Components.Panels.Common; public partial class HorizontalListPanel : Component { #region PARAMETERS [Parameter] public int Count { get; set; } = 5; [Parameter] public required string Title {get; set; } [Parameter] public required Func>>> GetItemsAction { get; set; } [Parameter] public required string ItemUrlFormatString { get; set; } [Parameter] public required Func IdSource { get; set; } [Parameter] public required Func NameSource { get; set; } [Parameter] public required string PosterPlaceholder { get; set; } [Parameter] public required Func> GetPictureAction { get; set; } [Parameter] public bool HidePlace { get; set; } [Parameter] public string? EmptyListMessage { get; set; } #endregion #region FIELDS private bool _loaded; private IEnumerable _items = default!; #endregion #region PRIVATE METHODS protected override async Task OnFirstRenderAsync() { IApiResponse> response = await GetItemsAction(); if (response.IsSuccessful) { _items = response.Content; } _loaded = true; StateHasChanged(); } #endregion }