fix(web): add try/finally, concurrency guard, accessible label, registration link to showcase
This commit is contained in:
@@ -36,8 +36,8 @@
|
||||
</div>
|
||||
|
||||
<div class="showcase-filter-group">
|
||||
<span class="showcase-filter-label">Система</span>
|
||||
<select class="gm-form-control showcase-filter-select" @onchange="OnSystemChanged">
|
||||
<label class="showcase-filter-label" for="system-filter">Система</label>
|
||||
<select id="system-filter" class="gm-form-control showcase-filter-select" aria-label="Система" @onchange="OnSystemChanged">
|
||||
<option value="" selected="@(filter.System is null)">Любая</option>
|
||||
@foreach (var system in Enum.GetValues<GameSystem>())
|
||||
{
|
||||
@@ -134,7 +134,7 @@ else
|
||||
<a class="btn-gm btn-gm-outline" href="@($"/s/{session.Id}")">Подробнее</a>
|
||||
@if (session.AllowDirectRegistration)
|
||||
{
|
||||
<button class="btn-gm btn-gm-primary">Записаться</button>
|
||||
<a class="btn-gm btn-gm-primary" href="@($"/s/{session.Id}?register=1")">Записаться</a>
|
||||
}
|
||||
</div>
|
||||
</div>
|
||||
@@ -318,22 +318,37 @@ else
|
||||
private async Task LoadAsync()
|
||||
{
|
||||
loading = true;
|
||||
page = 1;
|
||||
sessions.Clear();
|
||||
var results = await SessionStore.GetShowcaseSessionsAsync(filter, page, PageSize);
|
||||
sessions.AddRange(results);
|
||||
hasMore = results.Count == PageSize;
|
||||
loading = false;
|
||||
try
|
||||
{
|
||||
page = 1;
|
||||
sessions.Clear();
|
||||
var results = await SessionStore.GetShowcaseSessionsAsync(filter, page, PageSize);
|
||||
sessions.AddRange(results);
|
||||
hasMore = results.Count == PageSize;
|
||||
}
|
||||
finally
|
||||
{
|
||||
loading = false;
|
||||
}
|
||||
}
|
||||
|
||||
private async Task LoadMoreAsync()
|
||||
{
|
||||
if (loading)
|
||||
return;
|
||||
|
||||
loading = true;
|
||||
page++;
|
||||
var results = await SessionStore.GetShowcaseSessionsAsync(filter, page, PageSize);
|
||||
sessions.AddRange(results);
|
||||
hasMore = results.Count == PageSize;
|
||||
loading = false;
|
||||
try
|
||||
{
|
||||
page++;
|
||||
var results = await SessionStore.GetShowcaseSessionsAsync(filter, page, PageSize);
|
||||
sessions.AddRange(results);
|
||||
hasMore = results.Count == PageSize;
|
||||
}
|
||||
finally
|
||||
{
|
||||
loading = false;
|
||||
}
|
||||
}
|
||||
|
||||
private async Task OnFilterChanged()
|
||||
|
||||
Reference in New Issue
Block a user