Un liste d'ouvrage rafale est accessible depuis le menu
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Sonnet 5
parent
42dec0dbd1
commit
d76fb10ee0
@@ -3,6 +3,7 @@
|
||||
@inject ServiceLivresApi Api
|
||||
@inject EtatReseau Reseau
|
||||
@inject NavigationManager Navigation
|
||||
@inject CacheHorsLigne Cache
|
||||
|
||||
@*
|
||||
Mise en page pensée mobile d'abord : un bandeau, une colonne, rien à gauche.
|
||||
@@ -93,6 +94,16 @@
|
||||
</div>
|
||||
}
|
||||
|
||||
@*
|
||||
Une rafale non vidée reste consultable ailleurs sur le site — sans quoi y revenir
|
||||
depuis un autre écran demande de refaire tout le chemin d'« Ajouter ». L'entrée
|
||||
disparaît d'elle-même une fois la file effacée (bouton « Nouvelle rafale »).
|
||||
*@
|
||||
@if (_rafale is { Total: > 0 })
|
||||
{
|
||||
<NavLink class="menu-lien menu-lien-rafale" href="ajout/rafale">@LibelleRafale</NavLink>
|
||||
}
|
||||
|
||||
<NavLink class="menu-lien" href="" Match="NavLinkMatch.All">Catalogue</NavLink>
|
||||
<NavLink class="menu-lien" href="auteurs">Auteurs</NavLink>
|
||||
<NavLink class="menu-lien" href="series">Séries</NavLink>
|
||||
@@ -148,6 +159,12 @@
|
||||
|
||||
private ElementReference _menu;
|
||||
|
||||
/// <summary>Rafale non vidée, s'il y en a une. Relue à chaque navigation (lot AB).</summary>
|
||||
private Rafale? _rafale;
|
||||
|
||||
private string LibelleRafale =>
|
||||
_rafale is { Crees: > 0 } r ? $"Compte rendu ({r.Crees})" : "Rafale à reprendre";
|
||||
|
||||
protected override async Task OnInitializedAsync()
|
||||
{
|
||||
Reseau.Change += SurChangementReseau;
|
||||
@@ -158,6 +175,8 @@
|
||||
// entrées empilées au-dessus de la liste des auteurs.
|
||||
Navigation.LocationChanged += SurNavigation;
|
||||
|
||||
_rafale = await Cache.LireRafaleAsync();
|
||||
|
||||
// Écoute des bascules online/offline avant tout appel : un démarrage hors-ligne doit
|
||||
// aller directement au cache, sans attendre l'échec d'une requête.
|
||||
await Reseau.DemarrerAsync();
|
||||
@@ -226,13 +245,19 @@
|
||||
|
||||
private void SurNavigation(object? _, LocationChangedEventArgs __)
|
||||
{
|
||||
if (!_menuOuvert)
|
||||
if (_menuOuvert)
|
||||
{
|
||||
return;
|
||||
_menuOuvert = false;
|
||||
}
|
||||
|
||||
_menuOuvert = false;
|
||||
_ = InvokeAsync(StateHasChanged);
|
||||
// ⚠️ Relu à CHAQUE navigation, pas seulement au quitter de l'écran de rafale : c'est ce
|
||||
// qui fait apparaître l'entrée du menu dès le premier code scanné, et disparaître dès
|
||||
// la file effacée, où qu'on soit rendu entre-temps.
|
||||
_ = InvokeAsync(async () =>
|
||||
{
|
||||
_rafale = await Cache.LireRafaleAsync();
|
||||
StateHasChanged();
|
||||
});
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
||||
Reference in New Issue
Block a user