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>
41 lines
1.4 KiB
Plaintext
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);
|
|
}
|