fix: always show environment selector in TopBar
Use unfiltered agent query to discover environments (avoids circular filter). Always show selector even with single environment so it's visible as a label. Default to ['default'] when no agents connected. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -291,18 +291,19 @@ function LayoutContent() {
|
||||
}, [setSearchParams]);
|
||||
|
||||
const { data: catalog } = useRouteCatalog(timeRange.start.toISOString(), timeRange.end.toISOString(), selectedEnv);
|
||||
const { data: agents } = useAgents(undefined, undefined, selectedEnv);
|
||||
const { data: allAgents } = useAgents(); // unfiltered — for environment discovery
|
||||
const { data: agents } = useAgents(undefined, undefined, selectedEnv); // filtered — for sidebar/search
|
||||
const { data: attributeKeys } = useAttributeKeys();
|
||||
|
||||
// Extract distinct environments from agents
|
||||
// Extract distinct environments from ALL agents (not filtered by selected env)
|
||||
const environments: string[] = useMemo(() => {
|
||||
if (!agents) return [];
|
||||
if (!allAgents) return ['default'];
|
||||
const envSet = new Set<string>();
|
||||
for (const a of agents as any[]) {
|
||||
if (a.environmentId) envSet.add(a.environmentId);
|
||||
for (const a of allAgents as any[]) {
|
||||
envSet.add(a.environmentId || 'default');
|
||||
}
|
||||
return [...envSet].sort();
|
||||
}, [agents]);
|
||||
}, [allAgents]);
|
||||
|
||||
// --- Admin search data (only fetched on admin pages) ----------------
|
||||
const isAdminPage = location.pathname.startsWith('/admin');
|
||||
@@ -702,13 +703,13 @@ function LayoutContent() {
|
||||
<AppShell sidebar={sidebarElement}>
|
||||
<TopBar
|
||||
breadcrumb={breadcrumb}
|
||||
environment={environments.length > 0 ? (
|
||||
environment={
|
||||
<EnvironmentSelector
|
||||
environments={environments}
|
||||
value={selectedEnv}
|
||||
onChange={setSelectedEnv}
|
||||
/>
|
||||
) : undefined}
|
||||
}
|
||||
user={username ? { name: username } : undefined}
|
||||
onLogout={handleLogout}
|
||||
/>
|
||||
|
||||
Reference in New Issue
Block a user