Files
Mathieu LimonierandClaude Opus 5 6a6d745af4 MaBibli 1.0.0
Gestion de bibliothèque personnelle auto-hébergée : catalogue, prêts,
scan de code-barres, consultation hors-ligne.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-22 22:36:16 +02:00

41 lines
1.4 KiB
Plaintext

@*
Sélecteur du statut de lecture.
Le statut est PERSONNEL (CLAUDE.md) : ce que montrent ces boutons est la lecture de la
personne connectée, pas celle du foyer. « Non commencé » n'est pas une valeur de plus dans
l'énumération, c'est l'absence de ligne en base — d'où le bouton qui remet la valeur à null.
*@
<div class="segments @(Compact ? "segments-compacts" : null)" role="group" aria-label="Statut de lecture">
<button type="button"
class="segment @(Valeur is null ? "segment-actif" : null)"
disabled="@Desactive"
@onclick="() => Choisir(null)">
Non commencé
</button>
@foreach (var statut in Statuts)
{
<button type="button"
class="segment @Libelles.ClasseStatut(statut) @(Valeur == statut ? "segment-actif" : null)"
disabled="@Desactive"
@onclick="() => Choisir(statut)">
@Libelles.Statut(statut)
</button>
}
</div>
@code {
private static readonly Statut[] Statuts = Enum.GetValues<Statut>();
[Parameter] public Statut? Valeur { get; set; }
[Parameter] public EventCallback<Statut?> ValeurChanged { get; set; }
[Parameter] public bool Desactive { get; set; }
[Parameter] public bool Compact { get; set; }
private Task Choisir(Statut? statut) =>
statut == Valeur ? Task.CompletedTask : ValeurChanged.InvokeAsync(statut);
}