diff --git a/src/PSLauncher.App/ViewModels/MainViewModel.cs b/src/PSLauncher.App/ViewModels/MainViewModel.cs index 1a6f9d1..3f24bb4 100644 --- a/src/PSLauncher.App/ViewModels/MainViewModel.cs +++ b/src/PSLauncher.App/ViewModels/MainViewModel.cs @@ -75,14 +75,19 @@ public sealed partial class MainViewModel : ObservableObject [ObservableProperty] private double _progressPercent; /// - /// Onglet actuellement actif dans la sidebar droite. La UI montre le bon bloc + /// Onglet actuellement actif dans la sidebar gauche. La UI montre le bon bloc /// via les converters IsLibrary / IsReport / IsDocumentation. Default = Library /// pour que le launcher s'ouvre directement sur l'écran principal. + /// On notifie aussi FooterVisibility/FooterText : le footer (barre de DL, + /// status d'install) appartient à la page Library uniquement — il n'a aucun + /// sens visuel sur Report/Documentation qui sont des WebView pleine page. /// [ObservableProperty] [NotifyPropertyChangedFor(nameof(IsLibrary))] [NotifyPropertyChangedFor(nameof(IsReport))] [NotifyPropertyChangedFor(nameof(IsDocumentation))] + [NotifyPropertyChangedFor(nameof(FooterVisibility))] + [NotifyPropertyChangedFor(nameof(FooterText))] private LauncherPage _currentPage = LauncherPage.Library; public bool IsLibrary => CurrentPage == LauncherPage.Library; @@ -190,8 +195,16 @@ public sealed partial class MainViewModel : ObservableObject FeaturedVersion is null && OtherVersions.Count == 0 ? Visibility.Visible : Visibility.Collapsed; + /// + /// Footer visible UNIQUEMENT sur la page Library : c'est elle qui héberge + /// les téléchargements et installs, donc le seul contexte où la barre + /// de progression a du sens. Sur Report/Documentation (WebView pleine page), + /// le footer disparaît même si IsBusy ou StatusMessage non vide — l'opération + /// continue en arrière-plan, le user retrouve son état en revenant sur Library. + /// public Visibility FooterVisibility => - IsBusy || !string.IsNullOrEmpty(StatusMessage) ? Visibility.Visible : Visibility.Collapsed; + IsLibrary && (IsBusy || !string.IsNullOrEmpty(StatusMessage)) + ? Visibility.Visible : Visibility.Collapsed; public string FooterText => !string.IsNullOrEmpty(ProgressDetail) ? ProgressDetail :