feat: fix incorrect suggestions while moving between explores (#7008)

This commit is contained in:
Amlan Kumar Nandy 2025-02-03 14:31:01 +05:30 committed by GitHub
parent aa26dc77af
commit 784dccf298
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 16 additions and 11 deletions

View File

@ -1,18 +1,19 @@
import './InfraMonitoring.styles.scss'; import './InfraMonitoring.styles.scss';
import { initialQueriesMap } from 'constants/queryBuilder';
import { K8sCategory } from 'container/InfraMonitoringK8s/constants'; import { K8sCategory } from 'container/InfraMonitoringK8s/constants';
import QueryBuilderSearch from 'container/QueryBuilder/filters/QueryBuilderSearch'; import QueryBuilderSearch from 'container/QueryBuilder/filters/QueryBuilderSearch';
import DateTimeSelectionV2 from 'container/TopNav/DateTimeSelectionV2'; import DateTimeSelectionV2 from 'container/TopNav/DateTimeSelectionV2';
import { useQueryBuilder } from 'hooks/queryBuilder/useQueryBuilder';
import { useCallback, useMemo } from 'react'; import { useCallback, useMemo } from 'react';
import { IBuilderQuery } from 'types/api/queryBuilder/queryBuilderData'; import { IBuilderQuery } from 'types/api/queryBuilder/queryBuilderData';
import { DataSource } from 'types/common/queryBuilder';
function HostsListControls({ function HostsListControls({
handleFiltersChange, handleFiltersChange,
}: { }: {
handleFiltersChange: (value: IBuilderQuery['filters']) => void; handleFiltersChange: (value: IBuilderQuery['filters']) => void;
}): JSX.Element { }): JSX.Element {
const { currentQuery } = useQueryBuilder(); const currentQuery = initialQueriesMap[DataSource.METRICS];
const updatedCurrentQuery = useMemo( const updatedCurrentQuery = useMemo(
() => ({ () => ({
...currentQuery, ...currentQuery,

View File

@ -2,13 +2,14 @@
import './InfraMonitoringK8s.styles.scss'; import './InfraMonitoringK8s.styles.scss';
import { Button, Select } from 'antd'; import { Button, Select } from 'antd';
import { initialQueriesMap } from 'constants/queryBuilder';
import QueryBuilderSearch from 'container/QueryBuilder/filters/QueryBuilderSearch'; import QueryBuilderSearch from 'container/QueryBuilder/filters/QueryBuilderSearch';
import DateTimeSelectionV2 from 'container/TopNav/DateTimeSelectionV2'; import DateTimeSelectionV2 from 'container/TopNav/DateTimeSelectionV2';
import { useQueryBuilder } from 'hooks/queryBuilder/useQueryBuilder';
import { Filter, SlidersHorizontal } from 'lucide-react'; import { Filter, SlidersHorizontal } from 'lucide-react';
import { useCallback, useMemo, useState } from 'react'; import { useCallback, useMemo, useState } from 'react';
import { BaseAutocompleteData } from 'types/api/queryBuilder/queryAutocompleteResponse'; import { BaseAutocompleteData } from 'types/api/queryBuilder/queryAutocompleteResponse';
import { IBuilderQuery } from 'types/api/queryBuilder/queryBuilderData'; import { IBuilderQuery } from 'types/api/queryBuilder/queryBuilderData';
import { DataSource } from 'types/common/queryBuilder';
import { K8sCategory } from './constants'; import { K8sCategory } from './constants';
import K8sFiltersSidePanel from './K8sFiltersSidePanel/K8sFiltersSidePanel'; import K8sFiltersSidePanel from './K8sFiltersSidePanel/K8sFiltersSidePanel';
@ -47,7 +48,7 @@ function K8sHeader({
}: K8sHeaderProps): JSX.Element { }: K8sHeaderProps): JSX.Element {
const [isFiltersSidePanelOpen, setIsFiltersSidePanelOpen] = useState(false); const [isFiltersSidePanelOpen, setIsFiltersSidePanelOpen] = useState(false);
const { currentQuery } = useQueryBuilder(); const currentQuery = initialQueriesMap[DataSource.METRICS];
const updatedCurrentQuery = useMemo( const updatedCurrentQuery = useMemo(
() => ({ () => ({

View File

@ -243,13 +243,15 @@ export const useFetchKeysAndValues = (
fetchingSuggestionsStatus === 'success' && fetchingSuggestionsStatus === 'success' &&
suggestionsData?.payload?.attributes suggestionsData?.payload?.attributes
) { ) {
setKeys(suggestionsData.payload.attributes); if (!isInfraMonitoring) {
setSourceKeys((prevState) => setKeys(suggestionsData.payload.attributes);
uniqWith( setSourceKeys((prevState) =>
[...(suggestionsData.payload.attributes ?? []), ...prevState], uniqWith(
isEqual, [...(suggestionsData.payload.attributes ?? []), ...prevState],
), isEqual,
); ),
);
}
} else { } else {
setKeys([]); setKeys([]);
} }
@ -265,6 +267,7 @@ export const useFetchKeysAndValues = (
suggestionsData?.payload?.attributes, suggestionsData?.payload?.attributes,
fetchingSuggestionsStatus, fetchingSuggestionsStatus,
suggestionsData?.payload?.example_queries, suggestionsData?.payload?.example_queries,
isInfraMonitoring,
]); ]);
return { return {