2023-05-26 21:54:12 +02:00
|
|
|
@using WebSharpRSS.Models
|
|
|
|
@using Serilog
|
|
|
|
@using ToolQit.Extensions
|
|
|
|
|
|
|
|
@inject IDialogService _dialogService
|
|
|
|
|
|
|
|
<MudStack Spacing="2" Class="ma-2">
|
|
|
|
@if (Items != null)
|
|
|
|
{
|
|
|
|
foreach (var feedItemData in Items)
|
|
|
|
{
|
|
|
|
<MudItem @onclick="@(() => Callback(feedItemData))">
|
|
|
|
<MudPaper Height="250" Width="300" Class="px-2">
|
|
|
|
<div style="justify-self: start;" class="d-flex align-center">
|
2023-06-23 19:36:58 +02:00
|
|
|
@if (feedItemData.SyndicationParent.Category != null && !feedItemData.SyndicationParent.Category.Icon.IsNullEmptyWhiteSpace())
|
|
|
|
{
|
2023-06-24 00:15:54 +02:00
|
|
|
<MudTooltip Text="@feedItemData.SyndicationParent.Category.Name">
|
|
|
|
<MudIcon Icon="@feedItemData.SyndicationParent.Category.Icon" Class="mr-1" Style="@($"color:{feedItemData.SyndicationParent.Category.HexColor}")"/>
|
|
|
|
</MudTooltip>
|
2023-06-23 19:36:58 +02:00
|
|
|
}
|
2023-06-17 14:34:49 +02:00
|
|
|
@if (feedItemData.SyndicationParent.ImageUrl != null)
|
2023-05-26 21:54:12 +02:00
|
|
|
{
|
2023-06-24 00:15:54 +02:00
|
|
|
<MudTooltip Text="@feedItemData.SyndicationParent.Title">
|
|
|
|
<MudImage Src="@feedItemData.SyndicationParent.ImageUrl" ObjectFit="ObjectFit.Contain" Width="20" Height="20"/>
|
|
|
|
</MudTooltip>
|
2023-05-26 21:54:12 +02:00
|
|
|
}
|
2023-06-24 00:15:54 +02:00
|
|
|
<div class="d-inline ma-2 align-center" style="font-size: 20px; overflow: hidden; display: -webkit-box; -webkit-line-clamp: 1; line-clamp: 1; -webkit-box-orient: vertical;">
|
2023-05-26 21:54:12 +02:00
|
|
|
@if (feedItemData.Title != null)
|
|
|
|
{
|
|
|
|
@((MarkupString)feedItemData.Title)
|
|
|
|
}
|
|
|
|
</div>
|
2023-06-24 00:15:54 +02:00
|
|
|
<MudText Typo="Typo.subtitle2" Color="Color.Secondary"> - @feedItemData.SyndicationParent.Title</MudText>
|
2023-05-26 21:54:12 +02:00
|
|
|
</div>
|
2023-06-24 00:15:54 +02:00
|
|
|
<div style="overflow: hidden; display: -webkit-box; -webkit-line-clamp: 2; line-clamp:2; -webkit-box-orient: vertical;">
|
2023-05-26 21:54:12 +02:00
|
|
|
@if (feedItemData.Description != null && !feedItemData.Description.IsNullEmptyWhiteSpace())
|
|
|
|
{
|
|
|
|
@((MarkupString)feedItemData.Description)
|
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
|
|
|
<MudText Color="Color.Dark" Typo="Typo.body2">No description found!</MudText>
|
|
|
|
}
|
|
|
|
</div>
|
|
|
|
<MudText Typo="Typo.overline">@feedItemData.PublishingDate.ToString()</MudText>
|
|
|
|
</MudPaper>
|
|
|
|
</MudItem>
|
|
|
|
}
|
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
|
|
|
<MudAlert Severity="Severity.Info" Variant="Variant.Filled">No items to load!</MudAlert>
|
|
|
|
}
|
|
|
|
</MudStack>
|
|
|
|
|
|
|
|
@code {
|
|
|
|
[Parameter]
|
2023-06-16 22:53:26 +02:00
|
|
|
public HashSet<SyndicationItemData>? Items { get; set; }
|
2023-05-26 21:54:12 +02:00
|
|
|
DialogOptions _dialogOptions = new DialogOptions() { FullWidth = true, MaxWidth = MaxWidth.ExtraLarge, NoHeader = true, CloseButton = true, CloseOnEscapeKey = true };
|
|
|
|
|
2023-06-16 22:53:26 +02:00
|
|
|
private void Callback(SyndicationItemData syndicationItem)
|
2023-05-26 21:54:12 +02:00
|
|
|
{
|
|
|
|
var parameters = new DialogParameters();
|
2023-06-16 22:53:26 +02:00
|
|
|
parameters.Add("Data", syndicationItem);
|
2023-05-26 21:54:12 +02:00
|
|
|
_dialogService.Show<ReadDialog>("", parameters, _dialogOptions);
|
2023-06-17 14:04:26 +02:00
|
|
|
Log.Verbose("Item: {ItemId} clicked", syndicationItem.Link);
|
2023-05-26 21:54:12 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
}
|