SharpRSS/WebSharpRSS/Pages/Index.razor

54 lines
1.5 KiB
Plaintext
Raw Normal View History

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
@*@inject RssService _rssService;*@
2023-05-17 16:03:04 +02:00
@inject FeedStateContainer _stateContainer;
2023-05-17 16:03:04 +02:00
<MudGrid Spacing="3" Justify="Justify.FlexStart">
@foreach (var feedItem in _items)
2023-05-17 16:03:04 +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>();
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()
{
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
{
_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
}