From 63677f70bf0663ef3fae47b4fce64d9de7f428f4 Mon Sep 17 00:00:00 2001 From: Rory& Date: Tue, 9 Jul 2024 00:18:44 +0200 Subject: Older changes --- BugMine.Web/Pages/Projects/ViewProject.razor | 53 +++++++++++++++++++++------- 1 file changed, 41 insertions(+), 12 deletions(-) (limited to 'BugMine.Web/Pages/Projects/ViewProject.razor') diff --git a/BugMine.Web/Pages/Projects/ViewProject.razor b/BugMine.Web/Pages/Projects/ViewProject.razor index 91cc4d0..c1a2aa1 100644 --- a/BugMine.Web/Pages/Projects/ViewProject.razor +++ b/BugMine.Web/Pages/Projects/ViewProject.razor @@ -1,28 +1,36 @@ @page "/Projects/{ProjectSlug}/" -@using LibMatrix -@using BugMine.Web.Classes.Exceptions +@using System.Collections.Frozen +@using System.Reflection @using ArcaneLibs.Extensions +@using BugMine.Sdk.Events.Timeline +@using BugMine.Web.Pages.Projects.Issues +@using BugMine.Web.Components.ScopedContainers +@using LibMatrix -

Hi from ViewProject!

-

@ProjectContext!.Project!.Info.Name

- - @if (Progress == "loading-issues") { +

@ProjectContext!.Project!.Info.Name

+

@Followers.Count followers - @Issues?.Count issues

+ New issue + @if (Progress == Status.Loading) {

Loading issues, got @(Issues?.Count ?? 0) so far...

} @*

@Project.Description

*@ @if (Issues != null) { @foreach (var issue in Issues) { -
@issue.Data.RawContent.ToJson()
+ var issueData = issue.Data.TypedContent as BugMineIssueData; +
+
@* Color based on tags... *@ +

@issueData.Name

+
} }
@code { - private string? _progress = "loading"; + private Status? _progress = Status.Loading; public ProjectContainer.ProjectContainerContext? ProjectContext { get; set; } = new(); @@ -30,8 +38,9 @@ public string ProjectSlug { get; set; } = null!; private List? Issues { get; set; } + private FrozenSet Followers { get; set; } = FrozenSet.Empty; - private string? Progress { + private Status? Progress { get => _progress; set { _progress = value; @@ -40,14 +49,34 @@ } protected async Task OnProjectLoaded() { - Progress = "loading-issues"; - await foreach (var issue in ProjectContext.Project.GetIssues()) { + Progress = Status.Loading; + ProjectContext!.Project!.Room.GetMembersListAsync().ContinueWith(x => { + Followers = x.Result; + StateHasChanged(); + }); + await foreach (var issue in ProjectContext.Project.GetIssues(chunkLimit: 1000)) { Issues ??= new List(); Issues.Add(issue); - StateHasChanged(); + // StateHasChanged(); + if (Issues.Count % 1000 == 0) { + StateHasChanged(); + Console.WriteLine($"Got issue {Issues.Count} {issue.Data.RawContent.ToJson()}"); + } } + Progress = Status.Done; + StateHasChanged(); } + private enum Status { + Loading, + Done + } + + private string GetIssueUrl(BugMineIssue issue) => + typeof(ViewIssue).GetCustomAttributes().First().Template + .Replace("{ProjectSlug}", ProjectSlug) + .Replace("{IssueId}", issue.Data.EventId); + } \ No newline at end of file -- cgit 1.5.1