From 44b562d0912353871f0de445552e5f2acfa08eb9 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 d6c8325b4..8252c6ddc 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'; @@ -1336,7 +1336,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(); @@ -1401,6 +1401,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 (