Aller au contenu principal

LgTimelineContainer

LgTimelineContainer organise une suite de LgTimelineStep dans une timeline horizontale. Il conserve l'ordre des étapes, calcule les séparateurs et remonte l'identifiant de l'étape cliquée.

<LgTimelineContainer OnStepClicked="SelectStepAsync">
<LgTimelineStep Id="draft" TopLabel="@("#TimelineDraft".Translate())" IsValidated="true" />
<LgTimelineStep Id="review" TopLabel="@("#TimelineReview".Translate())" IsClickable="true" />
</LgTimelineContainer>
  • Espace de noms : Lagoon.UI.Components
  • Hérite de : LgComponentBase
  • Package NuGet : Lagoon.UI

Utilisation​

Démonstration​

Essayez ce composant dans le showcase Lagoon.

Déclarer des étapes​

Placez uniquement des LgTimelineStep dans ChildContent. Chaque étape doit avoir un Id unique, car OnStepClicked renvoie cet identifiant.

OrderTimelinePage.razor
<LgTimelineContainer OnStepClicked="SelectStepAsync">
@foreach (OrderStep step in _steps)
{
<LgTimelineStep Id="@step.Id"
TopLabel="@step.TopLabelKey.Translate()"
BottomLabel="@step.BottomLabelKey.Translate()"
IsClickable="@step.IsClickable"
IsValidated="@step.IsValidated" />
}
</LgTimelineContainer>
OrderTimelinePage.razor.cs
public partial class OrderTimelinePage : LgPage
{
// Étapes affichées dans l'ordre de lecture de la timeline.
private List<OrderStep> _steps = new()
{
new() { Id = "draft", TopLabelKey = "#TimelineDraft", BottomLabelKey = "#TimelineCreated", IsValidated = true },
new() { Id = "review", TopLabelKey = "#TimelineReview", BottomLabelKey = "#TimelineWaiting", IsClickable = true }
};

// Valide l'étape cliquée et active la suivante.
private Task SelectStepAsync(string id)
{
OrderStep step = _steps.Single(item => item.Id == id);
step.IsClickable = false;
step.IsValidated = true;
return Task.CompletedTask;
}

private class OrderStep
{
// Identifiant transmis au conteneur et renvoyé lors du clic.
public string Id { get; set; }

// Clé de traduction du libellé supérieur.
public string TopLabelKey { get; set; }

// Clé de traduction du libellé inférieur.
public string BottomLabelKey { get; set; }

// Indique si l'utilisateur peut sélectionner cette étape.
public bool IsClickable { get; set; }

// Indique si l'étape est déjà validée.
public bool IsValidated { get; set; }
}
}

Gérer la séquence métier​

Le conteneur n'impose aucune règle de workflow : vous choisissez quelles étapes sont cliquables et lesquelles sont validées. Cela permet d'autoriser une seule étape courante, plusieurs choix ou une étape d'annulation.

Propriétés​

NomTypeDéfautDéclaré dansDescription
ChildContentRenderFragmentnullLgTimelineContainerContenu contenant les étapes.

Événements​

NomTypeDescription
OnStepClickedEventCallback<string>Déclenché lorsqu'une étape cliquable est sélectionnée ; l'argument est l'Id de l'étape.

Accessibilité​

  • Rendez seulement les étapes réellement disponibles cliquables avec IsClickable.
  • Ajoutez un libellé supérieur ou inférieur compréhensible pour chaque étape.
  • Si vous personnalisez StepContent, conservez une indication visuelle claire de l'état validé.

Composants liés​