@using SharpRss.Models; @using MudBlazor.Utilities @using CodeHollow.FeedReader @using Serilog @using SharpRss.Services @using WebSharpRSS.Models; @using ToolQit.Extensions; @inject FeedStateContainer _stateContainer; @inject RssService _rssService
@if (context.FaviconUrl == null && context.Icon != null) { } else { } @context.Title
@*@context.FeeditemCount*@
@code { private MudTheme Theme = new MudTheme(); private readonly HashSet _guideItems = new HashSet(); private TreeItemData? _selectedItem; private TreeItemData? SelectedItem { get => _selectedItem; set { _selectedItem = value; ItemClicked(); } } private void ItemClicked() { } //private async void ExpandedClicked(TreeItemData treeItemData) //{ // treeItemData.Loading = true; // var groupedItems = await _rssService.GetFeedsAsync(treeItemData.GroupModel); // treeItemData.Children = ModelToTreeItem(groupedItems); // treeItemData.Loading = false; //} protected override async void OnInitialized() { Log.Verbose("Loading guide data..."); HashSet items = await _rssService.GetItemsAsync(); _guideItems.UnionWith(ModelToTreeItem(items)); StateHasChanged(); Log.Verbose("Guide initialized!"); } private HashSet ModelToTreeItem(HashSet model) => model.Select(x => x is GroupModel model ? new TreeItemData(model) : x is FeedModel feedModel ? new TreeItemData(feedModel) : throw new ArgumentException("Item arg is invalid!")).ToHashSet(); }