Files
mabibli/MaBibli.Client/Composants/Patience.razor
T
mathieuandClaude Opus 5 b8a5122b6f Rend l'attente visible, et met le champ de création sur une ligne
Une recherche BnF coûte environ une seconde par page, et jusqu'à dix pages pour
les nouveautés : sans rien à l'écran, l'application se lit comme plantée. Le lot
H l'avait montré — un écran qui ne dit rien pousse à recliquer, donc à relancer
l'appel.

Un indicateur ne remplace aucun message d'échec : une source muette garde ses
`EtatSourceBibliographie` et ses motifs. Ici on dit « ça travaille », jamais
« ça a marché ». L'animation se neutralise sous `prefers-reduced-motion`, la
rondelle restant visible : c'est elle qui porte l'information, pas sa rotation.

Le champ « nom d'une nouvelle série » et son bouton tiennent maintenant sur une
ligne. `min-width: 0` est ce qui la fait tenir à 320 px : sans lui, un élément de
formulaire refuse de rétrécir sous sa largeur intrinsèque et pousse le bouton
hors de l'écran.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-21 11:25:09 +02:00

26 lines
1.1 KiB
Plaintext

@*
Indicateur d'attente pour les appels lents (lot L1).
⚠️ Le besoin n'est pas décoratif. Une recherche BnF coûte environ une seconde par page, et
jusqu'à dix pages pour les nouveautés : sans rien à l'écran, l'application se lit comme
plantée, et l'utilisateur reclique — donc relance l'appel. C'est exactement ce que le lot H
avait constaté sur la bibliographie.
⚠️ Un indicateur NE REMPLACE PAS un message d'échec. Une source muette garde ses états
EtatSourceBibliographie et son motif : ici on dit « ça travaille », jamais « ça a marché ».
role="status" et non role="alert" : l'attente s'annonce sans interrompre le lecteur d'écran.
L'animation est neutralisée sous prefers-reduced-motion (voir app.css).
*@
<p class="attente @Classe" role="status">
<span class="attente-rondelle" aria-hidden="true"></span>
<span>@Message</span>
</p>
@code {
/// <summary>Ce qu'on attend, dit à l'utilisateur. Jamais un libellé générique si l'on sait mieux.</summary>
[Parameter, EditorRequired] public string Message { get; set; } = default!;
[Parameter] public string? Classe { get; set; }
}