@page "/Projects" @using LibMatrix.Homeservers

Projects

@if (Client == null) {

Authenticating...

} else if (Projects is null) {

Loading projects...

} else if (Projects.Count == 0) {

There are no projects to display.

} else {
@foreach (var project in Projects) {
@if (string.IsNullOrWhiteSpace(project.Info.ProjectIcon)) { } else { } @project.Info.Name
@*

@project.Info.Name

*@ }
}

Did not find the project board you are looking for?

Create new board @code { private BugMineClient? Client { get; set; } private List? Projects { get; set; } private CancellationTokenSource? _cts = new(); protected override async Task OnInitializedAsync() { Client = await BugMineStorage.GetCurrentSessionOrNavigate(); if (Client == null) { return; } StateHasChanged(); int count = 0; SemaphoreSlim semaphore = new(16, 16); await foreach (var project in Client.GetProjects(semaphore)) { Projects ??= []; Projects.Add(project); if(count++ <= 250 || count % 4 == 0) StateHasChanged(); } Projects ??= []; StateHasChanged(); } private async Task Navigate(BugMineProject project) { Console.WriteLine($"Navigating to {project.ProjectSlug}"); NavigationManager.NavigateTo($"/Projects/{project.ProjectSlug}/"); } }