From 9ac25a747f98c31bb50212329421da0087b2d17d Mon Sep 17 00:00:00 2001 From: PeterYurkovich Date: Tue, 12 May 2026 09:29:12 -0400 Subject: [PATCH] fix: reset queries when namespace changes in dev perspective --- web/src/components/MetricsPage.tsx | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/web/src/components/MetricsPage.tsx b/web/src/components/MetricsPage.tsx index 697b49eb5..4a74ba84a 100644 --- a/web/src/components/MetricsPage.tsx +++ b/web/src/components/MetricsPage.tsx @@ -62,7 +62,7 @@ import { } from '@patternfly/react-table'; import * as _ from 'lodash-es'; import type { FC, Ref } from 'react'; -import { useMemo, useCallback, useEffect, useState } from 'react'; +import { useMemo, useCallback, useEffect, useState, useRef } from 'react'; import { useTranslation } from 'react-i18next'; import { useDispatch, useSelector } from 'react-redux'; @@ -1338,7 +1338,7 @@ const MetricsPage_: FC = () => { const { t } = useTranslation(process.env.I18N_NAMESPACE); const [units, setUnits] = useQueryParam(QueryParams.Units, StringParam); const [customDataSourceName] = useQueryParam(QueryParams.Datasource, StringParam); - const { setNamespace } = useMonitoringNamespace(); + const { namespace, setNamespace } = useMonitoringNamespace(); const { displayNamespaceSelector } = useMonitoring(); const dispatch = useDispatch(); @@ -1403,6 +1403,17 @@ const MetricsPage_: FC = () => { }); }, [extensions, extensionsResolved, customDataSourceName, hasExtensions]); + const prevNamespace = useRef(namespace); + useEffect(() => { + // In the developer perspective (display namespace selector is false since all dev perspective + // pages add them automatically) then clear queries when the namespace changes + if (prevNamespace.current === namespace || displayNamespaceSelector) { + return; + } + prevNamespace.current = namespace; + dispatch(queryBrowserDeleteAllQueries()); + }, [namespace, dispatch, setNamespace]); + if (customDataSourceName) { if (!extensionsResolved || (!customDataSourceIsResolved && !customDatasourceError)) { return (