import './Breakoutoptions.styles.scss'; import { Skeleton } from 'antd'; import OverlayScrollbar from 'components/OverlayScrollbar/OverlayScrollbar'; import { useGetAggregateKeys } from 'hooks/infraMonitoring/useGetAggregateKeys'; import { ChartBar } from 'lucide-react'; import { ContextMenu } from 'periscope/components/ContextMenu'; import { useMemo } from 'react'; import { BaseAutocompleteData } from 'types/api/queryBuilder/queryAutocompleteResponse'; import { BreakoutOptionsProps } from './contextConfig'; function OptionsSkeleton(): JSX.Element { return (
{Array.from({ length: 5 }).map((_, index) => ( ))}
); } function BreakoutOptions({ queryData, onColumnClick, }: BreakoutOptionsProps): JSX.Element { const { groupBy } = queryData; const { isFetching, data } = useGetAggregateKeys( { aggregateAttribute: queryData.aggregateAttribute.key, dataSource: queryData.dataSource, aggregateOperator: queryData.aggregateOperator, searchText: '', }, { queryKey: [ queryData.aggregateAttribute.key, queryData.dataSource, queryData.aggregateOperator, ], enabled: !!queryData, }, ); const breakoutOptions = useMemo(() => { const groupByKeys = groupBy.map((item: BaseAutocompleteData) => item.key); return data?.payload?.attributeKeys?.filter( (item: BaseAutocompleteData) => !groupByKeys.includes(item.key), ); }, [data, groupBy]); console.log('>> queryData', queryData); console.log('>> groupBy', groupBy); console.log('>> breakoutOptions', breakoutOptions); return (
{/* eslint-disable-next-line react/jsx-no-useless-fragment */} <> {isFetching ? ( ) : ( breakoutOptions?.map((item: BaseAutocompleteData) => ( } onClick={(): void => onColumnClick(item)} > {item.key} )) )}
); } export default BreakoutOptions;