/* eslint-disable @typescript-eslint/explicit-function-return-type */ import './InfraMonitoringK8s.styles.scss'; import { Button, Select } from 'antd'; import QueryBuilderSearch from 'container/QueryBuilder/filters/QueryBuilderSearch'; import DateTimeSelectionV2 from 'container/TopNav/DateTimeSelectionV2'; import { useQueryBuilder } from 'hooks/queryBuilder/useQueryBuilder'; import { Filter, SlidersHorizontal } from 'lucide-react'; import { useCallback, useMemo, useState } from 'react'; import { BaseAutocompleteData } from 'types/api/queryBuilder/queryAutocompleteResponse'; import { IBuilderQuery } from 'types/api/queryBuilder/queryBuilderData'; import { K8sCategory } from './constants'; import K8sFiltersSidePanel from './K8sFiltersSidePanel/K8sFiltersSidePanel'; import { IPodColumn } from './utils'; interface K8sHeaderProps { selectedGroupBy: BaseAutocompleteData[]; groupByOptions: { value: string; label: string }[]; isLoadingGroupByFilters: boolean; handleFiltersChange: (value: IBuilderQuery['filters']) => void; handleGroupByChange: (value: IBuilderQuery['groupBy']) => void; defaultAddedColumns: IPodColumn[]; addedColumns?: IPodColumn[]; availableColumns?: IPodColumn[]; onAddColumn?: (column: IPodColumn) => void; onRemoveColumn?: (column: IPodColumn) => void; handleFilterVisibilityChange: () => void; isFiltersVisible: boolean; entity: K8sCategory; } function K8sHeader({ selectedGroupBy, defaultAddedColumns, groupByOptions, isLoadingGroupByFilters, addedColumns, availableColumns, handleFiltersChange, handleGroupByChange, onAddColumn, onRemoveColumn, handleFilterVisibilityChange, isFiltersVisible, entity, }: K8sHeaderProps): JSX.Element { const [isFiltersSidePanelOpen, setIsFiltersSidePanelOpen] = useState(false); const { currentQuery } = useQueryBuilder(); const updatedCurrentQuery = useMemo( () => ({ ...currentQuery, builder: { ...currentQuery.builder, queryData: [ { ...currentQuery.builder.queryData[0], aggregateOperator: 'noop', aggregateAttribute: { ...currentQuery.builder.queryData[0].aggregateAttribute, }, }, ], }, }), [currentQuery], ); const query = updatedCurrentQuery?.builder?.queryData[0] || null; const handleChangeTagFilters = useCallback( (value: IBuilderQuery['filters']) => { handleFiltersChange(value); }, [handleFiltersChange], ); return (
{!isFiltersVisible && (
)}
Group by