fixed Home Page endless loading on 0 articles
This commit is contained in:
parent
f23ce5261c
commit
305d60fd74
|
@ -12,13 +12,14 @@
|
||||||
|
|
||||||
<h1 class="text-3xl lg:text-5xl font-light mb-3">@Localizer["Title"]</h1>
|
<h1 class="text-3xl lg:text-5xl font-light mb-3">@Localizer["Title"]</h1>
|
||||||
|
|
||||||
@if (Articles.Count < 1) {
|
<!-- TODO: somehow get status message -->
|
||||||
|
|
||||||
|
@if (Busy) {
|
||||||
<div class="flex place-content-center h-full text-primary">
|
<div class="flex place-content-center h-full text-primary">
|
||||||
<span class="loading loading-spinner loading-lg"></span>
|
<span class="loading loading-spinner loading-lg"></span>
|
||||||
</div>
|
</div>
|
||||||
}
|
} else {
|
||||||
|
@if (Articles.FirstOrDefault() is {} featured) {
|
||||||
@if (Articles.FirstOrDefault() is {} featured) {
|
|
||||||
<article class="mb-6">
|
<article class="mb-6">
|
||||||
<a href="/article/@featured.Id">
|
<a href="/article/@featured.Id">
|
||||||
<div class="hero bg-neutral text-neutral-content">
|
<div class="hero bg-neutral text-neutral-content">
|
||||||
|
@ -39,13 +40,14 @@
|
||||||
</div>
|
</div>
|
||||||
</a>
|
</a>
|
||||||
</article>
|
</article>
|
||||||
}
|
}
|
||||||
|
|
||||||
<div class="grid grid-cols-1 sm:grid-cols-2 md:grid-cols-3 lg:grid-cols-4 xl:grid-cols-5 gap-x-8 gap-y-4 mb-6">
|
<div class="grid grid-cols-1 sm:grid-cols-2 md:grid-cols-3 lg:grid-cols-4 xl:grid-cols-5 gap-x-8 gap-y-4 mb-6">
|
||||||
@foreach (var article in Articles.Skip(1)) {
|
@foreach (var article in Articles.Skip(1)) {
|
||||||
<ArticleTile Article="article" />
|
<ArticleTile Article="article" />
|
||||||
}
|
}
|
||||||
</div>
|
</div>
|
||||||
|
}
|
||||||
|
|
||||||
@if (HasMore) {
|
@if (HasMore) {
|
||||||
<div class="flex place-content-center">
|
<div class="flex place-content-center">
|
||||||
|
@ -59,9 +61,11 @@
|
||||||
|
|
||||||
private List<Article> Articles { get; } = [];
|
private List<Article> Articles { get; } = [];
|
||||||
private bool HasMore { get; set; }
|
private bool HasMore { get; set; }
|
||||||
|
private bool Busy { get; set; } = true;
|
||||||
|
|
||||||
protected override async Task OnAfterRenderAsync(bool firstRender) {
|
protected override async Task OnAfterRenderAsync(bool firstRender) {
|
||||||
if (firstRender) {
|
if (firstRender) {
|
||||||
|
try {
|
||||||
await using var context = await ContextFactory.CreateDbContextAsync();
|
await using var context = await ContextFactory.CreateDbContextAsync();
|
||||||
|
|
||||||
var now = DateTimeOffset.UtcNow;
|
var now = DateTimeOffset.UtcNow;
|
||||||
|
@ -72,12 +76,16 @@
|
||||||
var articles = await query.Take(11).ToListAsync();
|
var articles = await query.Take(11).ToListAsync();
|
||||||
HasMore = (await query.CountAsync()) > 11;
|
HasMore = (await query.CountAsync()) > 11;
|
||||||
Articles.AddRange(articles);
|
Articles.AddRange(articles);
|
||||||
|
} finally {
|
||||||
|
Busy = false;
|
||||||
await InvokeAsync(StateHasChanged);
|
await InvokeAsync(StateHasChanged);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private async Task More() {
|
private async Task More() {
|
||||||
HasMore = false;
|
try {
|
||||||
|
Busy = HasMore = true;
|
||||||
await using var context = await ContextFactory.CreateDbContextAsync();
|
await using var context = await ContextFactory.CreateDbContextAsync();
|
||||||
|
|
||||||
var now = DateTimeOffset.UtcNow;
|
var now = DateTimeOffset.UtcNow;
|
||||||
|
@ -89,6 +97,9 @@
|
||||||
var articles = await query.Take(10).ToListAsync();
|
var articles = await query.Take(10).ToListAsync();
|
||||||
Articles.AddRange(articles);
|
Articles.AddRange(articles);
|
||||||
HasMore = (await query.CountAsync()) > 10;
|
HasMore = (await query.CountAsync()) > 10;
|
||||||
|
} finally {
|
||||||
|
Busy = false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
Loading…
Reference in a new issue