diff --git a/openmetadata-ui/src/main/resources/ui/src/components/common/facetfilter/FacetFilter.test.tsx b/openmetadata-ui/src/main/resources/ui/src/components/common/facetfilter/FacetFilter.test.tsx index d5e8c9fca00..911d1f6beda 100644 --- a/openmetadata-ui/src/main/resources/ui/src/components/common/facetfilter/FacetFilter.test.tsx +++ b/openmetadata-ui/src/main/resources/ui/src/components/common/facetfilter/FacetFilter.test.tsx @@ -37,7 +37,7 @@ const aggregations: Aggregations = { }, ], }, - tier: { + 'tier.tagFQN': { buckets: [], }, 'service.name.keyword': { @@ -98,6 +98,10 @@ const aggregations: Aggregations = { }, }; +jest.mock('utils/EntityUtils', () => ({ + getSortedTierBucketList: jest.fn().mockReturnValue([]), +})); + const filters = { serviceType: ['BigQuery', 'Glue'], 'service.name.keyword': ['bigquery_gcp', 'glue'], diff --git a/openmetadata-ui/src/main/resources/ui/src/components/common/facetfilter/FacetFilter.tsx b/openmetadata-ui/src/main/resources/ui/src/components/common/facetfilter/FacetFilter.tsx index de317911f91..27f53bf787d 100644 --- a/openmetadata-ui/src/main/resources/ui/src/components/common/facetfilter/FacetFilter.tsx +++ b/openmetadata-ui/src/main/resources/ui/src/components/common/facetfilter/FacetFilter.tsx @@ -17,6 +17,7 @@ import { AggregationEntry } from 'interface/search.interface'; import { isEmpty, isNil } from 'lodash'; import React, { useEffect, useMemo, useState } from 'react'; import { useTranslation } from 'react-i18next'; +import { getSortedTierBucketList } from 'utils/EntityUtils'; import { compareAggregationKey, @@ -45,7 +46,14 @@ const FacetFilter: React.FC = ({ */ const aggregationEntries = useMemo(() => { if (isNil(filters) || isEmpty(filters)) { - return Object.entries(aggregations) + const { 'tier.tagFQN': tier, ...restProps } = aggregations; + + const sortedTiersList = { + ...tier, + buckets: getSortedTierBucketList(tier.buckets), + }; + + return Object.entries({ ...restProps, 'tier.tagFQN': sortedTiersList }) .filter(([, { buckets }]) => buckets.length) .sort(([key1], [key2]) => compareAggregationKey(key1, key2)); } diff --git a/openmetadata-ui/src/main/resources/ui/src/utils/EntityUtils.tsx b/openmetadata-ui/src/main/resources/ui/src/utils/EntityUtils.tsx index 882d09a9c1b..61fa643f504 100644 --- a/openmetadata-ui/src/main/resources/ui/src/utils/EntityUtils.tsx +++ b/openmetadata-ui/src/main/resources/ui/src/utils/EntityUtils.tsx @@ -582,3 +582,6 @@ export const getFrequentlyJoinedColumns = ( ) : null; }; + +export const getSortedTierBucketList = (buckets: Bucket[]): Bucket[] => + buckets.sort((a, b) => Number(a.key.slice(-1)) - Number(b.key.slice(-1)));