This is an automated email from the ASF dual-hosted git repository.

wu-sheng pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/skywalking-horizon-ui.git


The following commit(s) were added to refs/heads/main by this push:
     new e462a7b  ui dashboards: drop "Select an instance above" gate that 
masked auto-pick
e462a7b is described below

commit e462a7bae892147f5aa675a2b61d9987dedcbf8a
Author: Wu Sheng <[email protected]>
AuthorDate: Sun May 17 19:44:15 2026 +0800

    ui dashboards: drop "Select an instance above" gate that masked auto-pick
    
    When the operator clicked a different service, setSelected dropped
    the URL ?instance=. Before the instance auto-pick fired (the
    instance query needs the BFF roundtrip), the template fell into
    the `scope === 'instance' && serviceName && !selectedInstance`
    branch and rendered "Select an instance above to view its
    metrics". That message implied operator action was needed, while
    in reality the auto-pick was already running in the background.
    The operator saw "nothing happens" for a beat, then the cascade
    visibly resumed — the "frozen for seconds, then suddenly working"
    symptom.
    
    Both the instance- and endpoint-scope "Select X above…" branches
    are now removed. The picker handles its own empty state (header
    "loading instances…" hint, "no active instances reported" copy
    once the list resolves empty), and the widget grid's "Reading
    data…" gate covers the upstream wait for everyone else.
---
 .../render/layer-dashboard/LayerDashboardsView.vue    | 19 +++++++------------
 1 file changed, 7 insertions(+), 12 deletions(-)

diff --git a/apps/ui/src/render/layer-dashboard/LayerDashboardsView.vue 
b/apps/ui/src/render/layer-dashboard/LayerDashboardsView.vue
index 65de3ce..13e9379 100644
--- a/apps/ui/src/render/layer-dashboard/LayerDashboardsView.vue
+++ b/apps/ui/src/render/layer-dashboard/LayerDashboardsView.vue
@@ -586,21 +586,16 @@ function isVisible(
     </section>
 
     <div v-if="configLoading" class="empty">Loading dashboard config…</div>
-    <div
-      v-else-if="scope === 'endpoint' && serviceName && !selectedEndpoint"
-      class="empty"
-    >
-      Select an endpoint above to view its metrics.
-    </div>
-    <div
-      v-else-if="scope === 'instance' && serviceName && !selectedInstance"
-      class="empty"
-    >
-      Select an instance above to view its metrics.
-    </div>
     <div v-else-if="widgets.length === 0" class="empty">
       No widgets defined for this layer. Phase 7 admin will let operators add 
their own.
     </div>
+    <!-- The previous "Select an instance/endpoint above to view its
+         metrics" branches implied operator action was needed and
+         masked the (already-running) auto-pick — which made every
+         service click feel frozen for a beat before the cascade
+         visibly resumed. The picker handles its own empty state;
+         the "Reading data…" gate below covers the upstream wait. -->
+
     <!-- Single page-level loading state while we don't yet have
          widget data to render. Covers the whole upstream wait,
          not just the dashboard fetch:

Reply via email to