/* eslint-disable react/require-default-props */ /* eslint-disable sonarjs/no-duplicate-string */ import InputWithLabel from 'components/InputWithLabel/InputWithLabel'; import cx from 'classnames'; import './TraceOperator.styles.scss'; import { useQueryBuilder } from 'hooks/queryBuilder/useQueryBuilder'; import { useCallback } from 'react'; import { IBuilderQuery, IBuilderTraceOperator, } from 'types/api/queryBuilder/queryBuilderData'; import QueryAddOns from '../QueryAddOns/QueryAddOns'; import QueryAggregation from '../QueryAggregation/QueryAggregation'; import { useTraceOperatorOperations } from 'hooks/queryBuilder/userTraceOperatorOperations'; import { Button, Tooltip } from 'antd'; import { Trash2 } from 'lucide-react'; export default function TraceOperator({ traceOperator, isListViewPanel = false, }: { traceOperator: IBuilderTraceOperator | undefined; isListViewPanel?: boolean; }): JSX.Element { const { panelType, currentQuery, removeTraceOperator } = useQueryBuilder(); const { handleChangeTraceOperatorData } = useTraceOperatorOperations({ index: 0, query: traceOperator, }); const handleTraceOperatorChange = useCallback( (traceOperatorExpression: string) => { handleChangeTraceOperatorData('expression', traceOperatorExpression); }, [handleChangeTraceOperatorData], ); const handleChangeAggregateEvery = useCallback( (value: IBuilderQuery['stepInterval']) => { handleChangeTraceOperatorData('stepInterval', value); }, [handleChangeTraceOperatorData], ); const handleChangeAggregation = useCallback( (value: string) => { handleChangeTraceOperatorData('aggregations', [ { expression: value, }, ]); }, [handleChangeTraceOperatorData], ); const handleChangeSpanSource = useCallback( (value: string) => { handleChangeTraceOperatorData('returnSpansFrom', value); }, [handleChangeTraceOperatorData], ); return (
{!isListViewPanel && (
)}
{true && ( )}
); }