From 947b5bdefb646ecc5ec23c3cb96a408be5589873 Mon Sep 17 00:00:00 2001 From: SagarRajput-7 <162284829+SagarRajput-7@users.noreply.github.com> Date: Fri, 23 Aug 2024 15:15:30 +0530 Subject: [PATCH] fix: handled defaultTraceSelected for traces list view (#5752) * fix: handled defaultTraceSelected for traces list view * fix: added metaData id --- .../container/OptionsMenu/useOptionsMenu.ts | 39 ++++++++++++++++--- 1 file changed, 34 insertions(+), 5 deletions(-) diff --git a/frontend/src/container/OptionsMenu/useOptionsMenu.ts b/frontend/src/container/OptionsMenu/useOptionsMenu.ts index 6ed445a773..7b3cfce035 100644 --- a/frontend/src/container/OptionsMenu/useOptionsMenu.ts +++ b/frontend/src/container/OptionsMenu/useOptionsMenu.ts @@ -7,6 +7,10 @@ import { useGetAggregateKeys } from 'hooks/queryBuilder/useGetAggregateKeys'; import useDebounce from 'hooks/useDebounce'; import { useNotifications } from 'hooks/useNotifications'; import useUrlQueryData from 'hooks/useUrlQueryData'; +import { + AllTraceFilterKeys, + AllTraceFilterKeyValue, +} from 'pages/TracesExplorer/Filter/filterUtils'; import { useCallback, useEffect, useMemo, useState } from 'react'; import { useQueries } from 'react-query'; import { ErrorResponse, SuccessResponse } from 'types/api'; @@ -111,15 +115,40 @@ const useOptionsMenu = ({ [] as BaseAutocompleteData[], ); - return ( - (initialOptions.selectColumns - ?.map((column) => attributesData.find(({ key }) => key === column)) - .filter(Boolean) as BaseAutocompleteData[]) || [] - ); + let initialSelected = initialOptions.selectColumns + ?.map((column) => attributesData.find(({ key }) => key === column)) + .filter(Boolean) as BaseAutocompleteData[]; + + if (dataSource === DataSource.TRACES) { + initialSelected = initialSelected + ?.map((col) => { + if (col && Object.keys(AllTraceFilterKeyValue).includes(col?.key)) { + const metaData = defaultTraceSelectedColumns.find( + (coln) => coln.key === (col.key as AllTraceFilterKeys), + ); + + return { + ...metaData, + key: metaData?.key, + dataType: metaData?.dataType, + type: metaData?.type, + isColumn: metaData?.isColumn, + isJSON: metaData?.isJSON, + id: metaData?.id, + }; + } + return col; + }) + .filter(Boolean) as BaseAutocompleteData[]; + } + + return initialSelected || []; + // eslint-disable-next-line react-hooks/exhaustive-deps }, [ isFetchedInitialAttributes, initialOptions?.selectColumns, initialAttributesResult, + dataSource, ]); const {