2023-04-27 17:23:01 +02:00
|
|
|
@page "/"
|
2023-05-17 16:03:04 +02:00
|
|
|
@using CodeHollow.FeedReader;
|
|
|
|
@using SharpRss.Models;
|
|
|
|
@using WebSharpRSS.Models;
|
2023-05-18 01:27:11 +02:00
|
|
|
@using SharpRss.Services
|
2023-04-27 17:23:01 +02:00
|
|
|
|
2023-05-18 20:15:31 +02:00
|
|
|
@*@inject RssService _rssService;*@
|
2023-05-17 16:03:04 +02:00
|
|
|
@inject FeedStateContainer _stateContainer;
|
2023-05-07 18:37:25 +02:00
|
|
|
|
2023-05-17 16:03:04 +02:00
|
|
|
<MudGrid Spacing="3" Justify="Justify.FlexStart">
|
2023-05-18 20:15:31 +02:00
|
|
|
@foreach (var feedItem in _items)
|
2023-05-17 16:03:04 +02:00
|
|
|
{
|
2023-05-18 20:15:31 +02:00
|
|
|
<MudItem xs="6">
|
|
|
|
<MudCard>
|
|
|
|
<MudCardContent>
|
|
|
|
<MudText>@feedItem.Title</MudText>
|
|
|
|
<MudText Typo="Typo.body2">@feedItem.Description</MudText>
|
|
|
|
<MudText Typo="Typo.overline">@feedItem.PublishingDate.ToString()</MudText>
|
|
|
|
</MudCardContent>
|
|
|
|
</MudCard>
|
|
|
|
</MudItem>
|
2023-05-17 16:03:04 +02:00
|
|
|
}
|
|
|
|
</MudGrid>
|
2023-04-27 17:23:01 +02:00
|
|
|
|
|
|
|
@code {
|
2023-05-17 16:03:04 +02:00
|
|
|
|
|
|
|
private HashSet<FeedItem> _items = new HashSet<FeedItem>();
|
2023-05-18 20:15:31 +02:00
|
|
|
protected override void OnInitialized()
|
2023-05-17 16:03:04 +02:00
|
|
|
{
|
|
|
|
UpdateFeeds();
|
|
|
|
_stateContainer.StateChanged += FeedsChanged;
|
|
|
|
}
|
|
|
|
private void FeedsChanged()
|
|
|
|
{
|
|
|
|
UpdateFeeds();
|
|
|
|
InvokeAsync(StateHasChanged);
|
|
|
|
}
|
|
|
|
|
|
|
|
private void UpdateFeeds()
|
|
|
|
{
|
2023-05-18 20:15:31 +02:00
|
|
|
if (_stateContainer.TreeItem == null) return;
|
|
|
|
if (_stateContainer.TreeItem.Feed != null)
|
|
|
|
_items = _stateContainer.TreeItem.Feed.Items.ToHashSet();
|
|
|
|
if (_stateContainer.TreeItem.Feeds != null)
|
2023-05-17 16:03:04 +02:00
|
|
|
{
|
2023-05-18 20:15:31 +02:00
|
|
|
_items = new HashSet<FeedItem>();
|
|
|
|
foreach (var itemData in _stateContainer.TreeItem.Feeds)
|
|
|
|
{
|
|
|
|
if (itemData.Feed == null) continue;
|
|
|
|
_items.UnionWith(itemData.Feed.Items);
|
|
|
|
}
|
2023-05-17 16:03:04 +02:00
|
|
|
}
|
|
|
|
}
|
2023-04-27 17:23:01 +02:00
|
|
|
}
|