/* 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'; export default function TraceOperator({ traceOperator, isListViewPanel = false, }: { traceOperator: IBuilderTraceOperator | undefined; isListViewPanel?: boolean; }): JSX.Element { const { panelType, currentQuery } = 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 && (
)}
); }