From a2e67d5405713b2e18d59c826761a83a69f3dddd Mon Sep 17 00:00:00 2001 From: "j.foucher" Date: Sun, 3 May 2026 09:00:26 +0200 Subject: [PATCH] Footer is Library-only: hide on Report/Documentation tabs MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The download/install progress footer made no visual sense on the WebView pages — it would float above the embedded site. It now only appears when CurrentPage = Library. The DL itself keeps running in the background while the user browses Reports or Docs; switching back to Library restores the live footer. Implementation: FooterVisibility now ANDs with IsLibrary, and CurrentPage notifies FooterVisibility/FooterText so the footer collapses/reveals on tab switch. Co-Authored-By: Claude Opus 4.7 (1M context) --- src/PSLauncher.App/ViewModels/MainViewModel.cs | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) 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 :