diff --git a/MaBibli.Client/Pages/Serie.razor b/MaBibli.Client/Pages/Serie.razor
index c4b8a55..eaa6f48 100644
--- a/MaBibli.Client/Pages/Serie.razor
+++ b/MaBibli.Client/Pages/Serie.razor
@@ -520,6 +520,7 @@ else
SurToucheNumero(e, element))"
aria-label="@($"Numéro du tome « {element.Titre} »")"
@@ -745,6 +746,11 @@ else
private string _numeroSaisi = string.Empty;
+ private ElementReference _champNumero;
+
+ /// Le champ « numéro » vient de s'ouvrir : à focaliser au prochain rendu.
+ private bool _focusNumero;
+
///
/// Trier par numéro de tome plutôt que par ordre de lecture.
///
@@ -869,6 +875,12 @@ else
protected override async Task OnAfterRenderAsync(bool premierRendu)
{
+ if (_focusNumero)
+ {
+ _focusNumero = false;
+ await _champNumero.FocusAsync();
+ }
+
if (_focusAFaire is not { } voie)
{
return;
@@ -894,6 +906,7 @@ else
{
_numeroOuvert = element.Id;
_numeroSaisi = element.Numero ?? string.Empty;
+ _focusNumero = true;
}
private async Task SurToucheNumero(KeyboardEventArgs e, ElementSerieDto element)
@@ -1052,7 +1065,7 @@ else
/// refuse aussi — cette liste évite seulement de proposer un choix qui sera rejeté.
///
private IEnumerable Candidates =>
- _toutes.Where(s => s.Id != Id && !EstDescendante(s.Id));
+ _toutes.Where(s => s.Id != Id && !EstDescendante(s.Id)).Reverse();
private bool EstDescendante(int candidate)
{
@@ -1522,10 +1535,9 @@ else
await EcrireAsync(() => Api.ModifierSerieAsync(
Id, new EnregistrementSerie { Titre = _titre, SerieParenteId = _parenteId == 0 ? null : _parenteId }));
- // Le rangement dans un cycle change la parenté des AUTRES séries affichées : on relit.
if (_erreur is null)
{
- await ChargerAsync();
+ Navigation.NavigateTo($"series/{Id}");
}
}