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;