LgLoaderView
LgLoaderView affiche un état de chargement puis remplace automatiquement le loader par le contenu final. Il couvre les chargements indéterminés, les progressions déterminées avec Lagoon.Helpers.Progress, les erreurs, l'annulation et le redémarrage.
<LgLoaderView IsLoading="@IsLoading" Label="#LoadingOrders">
@("#OrdersLoaded".Translate())
</LgLoaderView>
- Espace de noms :
Lagoon.UI.Components - Hérite de :
LgComponentBase - Package NuGet :
Lagoon.UI
Utilisation
Démonstration
Essayez ce composant dans le showcase Lagoon.
Chargement indéterminé
Utilisez IsLoading pour afficher le loader tant que le traitement n'est pas terminé. ChildContent est rendu uniquement après le chargement.
Sans progression, LgLoaderView affiche le spinner de l'application, le même que sur l'écran de démarrage. Il se choisit dans le main.scss du client : voir Spinner de chargement.
<LgLoaderView IsLoading="@IsLoading" Label="#LoadingOrders">
@("#OrdersLoaded".Translate())
</LgLoaderView>
<LgButton Text="#ReloadOrders" OnClick="ReloadOrdersAsync" />
public partial class OrdersLoaderPage : LgPage
{
// Indique si les données sont en cours de chargement.
private bool IsLoading { get; set; } = true;
// Lance un rechargement et laisse LgLoaderView afficher l'état d'attente.
private async Task ReloadOrdersAsync(ActionEventArgs args)
{
IsLoading = true;
await Task.Delay(1000, args.CancellationToken);
IsLoading = false;
}
}
Chargement déterminé avec Progress
Passez une instance de Lagoon.Helpers.Progress pour que le loader suive automatiquement Position, StartPosition, EndPosition et Message.
<LgLoaderView Progress="@ImportProgress" ProgressType="ProgressType.Circle">
@("#ImportCompleted".Translate())
</LgLoaderView>
<LgButton Text="#StartImport" OnClick="StartImportAsync" />
public partial class ImportLoaderPage : LgPage
{
// Progression partagée avec LgLoaderView ; elle déclenche le rafraîchissement du composant.
private Progress ImportProgress { get; } = new(100, "#ImportStarting");
// Simule un import et publie chaque étape dans l'objet Progress.
private async Task StartImportAsync(ActionEventArgs args)
{
ImportProgress.Reset(100, "#ImportStarting");
for (int i = 0; i <= 100; i++)
{
ImportProgress.Report(i, "#ImportRunning");
await Task.Delay(25, args.CancellationToken);
}
}
}
Barre ou cercle de progression
ProgressType choisit le rendu déterminé : cercle par défaut ou barre horizontale. En mode barre, LgLoaderView rend un LgProgress.
<LgLoaderView Progress="@ArchiveProgress" ProgressType="ProgressType.Bar">
@("#ArchiveCompleted".Translate())
</LgLoaderView>
public partial class ArchiveLoaderPage : LgPage
{
// Progression utilisée pour afficher une barre horizontale dans le loader.
private Progress ArchiveProgress { get; } = new(50, "#ArchiveStarting");
}