Skip to content

[Enhancement]: Scan-first grids show a bare header row over nothing instead of the shared empty state #2111

Description

@laurentiu021

Problem

The app has a shared EmptyState control whose own comment calls it the "single source of truth for the 'icon + title + message' idiom so the look can never drift between views", and 27 views use it. Twelve views hold a DataGrid without one, and in the scan-first ones that means the user's first look at the tab is a column header row over blank space.

TracerouteView is the clearest: HeadersVisibility="Column", ItemsSource="{Binding Shared.TracerouteHops}", and no sibling panel — so before the first "Trace now" the card is headers and nothing else, with no line saying what to press.

The twelve, split by whether the grid can be empty when the tab opens:

Empty until the user acts — these are the defect:

  • TracerouteView.xaml — empty until Trace now
  • SpeedTestView.xaml — empty until a test runs
  • DeepCleanupView.xaml — empty until a scan
  • WindowsUpdateView.xaml — empty until a check
  • SystemHealthView.xaml — empty until a check
  • CliInterfaceView.xaml — needs a look

Populated the moment the tab opens, so an empty state would never show:

  • ProcessManagerView.xaml, ServicesView.xaml, StartupView.xaml, WindowsFeaturesView.xaml, DnsHostsView.xaml, EnvironmentVariablesView.xaml

For the second group the omission is correct. It is worth a one-line comment saying so, otherwise a future uniformity sweep adds six empty states that can never appear.

This matters most for the audience the app is aimed at. A relative who opens Traceroute sees a table with no rows and no instruction; the 27 views that do this properly tell them what the tab needs.

Expected behavior

The six scan-first grids drop in EmptyState as a sibling with Visibility bound to the collection's emptiness, exactly as the control's own usage note describes, with copy naming the button to press. Empty, loading and error states are already a Gate-UX requirement — this is the empty half of it, missing in six places.

Evidence

  • SysManager/SysManager/Views/EmptyState.xaml — the shared control and its usage note
  • 27 views instantiate it (grep -l ':EmptyState' Views/*.xaml)
  • SysManager/SysManager/Views/TracerouteView.xaml — the grid with no sibling
  • the twelve DataGrid views with no instance, listed above

Affected tabs

Traceroute, Speed Test, Deep Cleanup, Windows Update, System Health, CLI Interface

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requestuxVisual or interaction improvement

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions