54 lines
1.4 KiB
TypeScript
Raw Normal View History

import './QueryBuilderV2.styles.scss';
2025-05-16 02:48:03 +05:30
import { IBuilderQuery } from 'types/api/queryBuilder/queryBuilderData';
import { DataSource } from 'types/common/queryBuilder';
2025-05-16 02:48:03 +05:30
import MetricsAggregateSection from './Metrics/MerticsAggregateSection/MetricsAggregateSection';
import { MetricsSelect } from './Metrics/MetricsSelect/MetricsSelect';
import QueryAddOns from './QueryAddOns/QueryAddOns';
import QueryAggregation from './QueryAggregation/QueryAggregation';
2025-05-14 16:43:28 +05:30
import { QueryBuilderV2Provider } from './QueryBuilderV2Context';
import QuerySearch from './QuerySearch/QuerySearch';
2025-04-26 23:53:30 +05:30
2025-05-16 02:48:03 +05:30
type QueryBuilderV2Props = {
source: DataSource;
query: IBuilderQuery;
};
function QueryBuilderV2Main({
source,
query,
}: QueryBuilderV2Props): JSX.Element {
const isMetricsDataSource = query.dataSource === DataSource.METRICS;
2025-04-26 23:53:30 +05:30
return (
<div className="query-builder-v2">
2025-05-16 02:48:03 +05:30
{isMetricsDataSource && (
<MetricsSelect query={query} index={0} version="v4" />
)}
<QuerySearch />
2025-05-16 02:48:03 +05:30
{isMetricsDataSource ? (
<MetricsAggregateSection query={query} index={0} version="v4" />
) : (
<QueryAggregation source={source} />
)}
<QueryAddOns query={query} version="v3" isListViewPanel={false} />
2025-04-26 23:53:30 +05:30
</div>
);
}
2025-05-16 02:48:03 +05:30
function QueryBuilderV2(props: QueryBuilderV2Props): JSX.Element {
const { source, query } = props;
2025-05-14 16:43:28 +05:30
return (
<QueryBuilderV2Provider>
2025-05-16 02:48:03 +05:30
<QueryBuilderV2Main source={source} query={query} />
2025-05-14 16:43:28 +05:30
</QueryBuilderV2Provider>
);
}
export default QueryBuilderV2;