2025-06-04 16:37:18 +05:30
|
|
|
import { QueryBuilderV2 } from 'components/QueryBuilderV2/QueryBuilderV2';
|
|
|
|
|
// import QuerySearch from 'components/QueryBuilderV2/QueryV2/QuerySearch/QuerySearch';
|
2023-06-19 15:57:58 +03:00
|
|
|
import { PANEL_TYPES } from 'constants/queryBuilder';
|
2023-07-19 08:47:21 +03:00
|
|
|
import ExplorerOrderBy from 'container/ExplorerOrderBy';
|
|
|
|
|
import { OrderByFilterProps } from 'container/QueryBuilder/filters/OrderByFilter/OrderByFilter.interfaces';
|
2025-06-04 16:37:18 +05:30
|
|
|
// import SpanScopeSelector from 'container/QueryBuilder/filters/QueryBuilderSearchV2/SpanScopeSelector';
|
2023-07-07 15:49:35 +03:00
|
|
|
import { QueryBuilderProps } from 'container/QueryBuilder/QueryBuilder.interfaces';
|
2023-06-23 21:39:59 +03:00
|
|
|
import { useGetPanelTypesQueryParam } from 'hooks/queryBuilder/useGetPanelTypesQueryParam';
|
2025-06-04 16:37:18 +05:30
|
|
|
// import { useQueryBuilder } from 'hooks/queryBuilder/useQueryBuilder';
|
2023-07-19 08:47:21 +03:00
|
|
|
import { memo, useCallback, useMemo } from 'react';
|
2023-06-19 15:57:58 +03:00
|
|
|
import { DataSource } from 'types/common/queryBuilder';
|
|
|
|
|
|
2025-06-04 16:37:18 +05:30
|
|
|
import { Container } from './styles';
|
2023-06-19 15:57:58 +03:00
|
|
|
|
2025-06-04 16:37:18 +05:30
|
|
|
function QuerySection({
|
|
|
|
|
selectedView,
|
|
|
|
|
}: {
|
|
|
|
|
selectedView: PANEL_TYPES;
|
|
|
|
|
}): JSX.Element {
|
|
|
|
|
// const { currentQuery } = useQueryBuilder();
|
|
|
|
|
|
|
|
|
|
// const queryName = currentQuery?.builder?.queryData[0]?.queryName || '';
|
2023-06-19 15:57:58 +03:00
|
|
|
|
2023-07-04 08:24:34 +03:00
|
|
|
const panelTypes = useGetPanelTypesQueryParam(PANEL_TYPES.LIST);
|
2023-06-23 21:39:59 +03:00
|
|
|
|
2023-07-07 15:49:35 +03:00
|
|
|
const filterConfigs: QueryBuilderProps['filterConfigs'] = useMemo(() => {
|
2023-07-28 14:33:07 +05:30
|
|
|
const isList = panelTypes === PANEL_TYPES.LIST;
|
2023-07-07 15:49:35 +03:00
|
|
|
const config: QueryBuilderProps['filterConfigs'] = {
|
2024-06-12 17:38:05 +05:30
|
|
|
stepInterval: { isHidden: false, isDisabled: false },
|
2023-07-31 18:43:25 +05:30
|
|
|
limit: { isHidden: isList, isDisabled: true },
|
2023-07-28 14:33:07 +05:30
|
|
|
having: { isHidden: isList, isDisabled: true },
|
2023-07-07 15:49:35 +03:00
|
|
|
};
|
|
|
|
|
|
|
|
|
|
return config;
|
2023-07-28 14:33:07 +05:30
|
|
|
}, [panelTypes]);
|
2023-07-07 15:49:35 +03:00
|
|
|
|
2023-07-19 08:47:21 +03:00
|
|
|
const renderOrderBy = useCallback(
|
|
|
|
|
({ query, onChange }: OrderByFilterProps) => (
|
|
|
|
|
<ExplorerOrderBy query={query} onChange={onChange} />
|
|
|
|
|
),
|
|
|
|
|
[],
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
const queryComponents = useMemo((): QueryBuilderProps['queryComponents'] => {
|
|
|
|
|
const shouldRenderCustomOrderBy =
|
|
|
|
|
panelTypes === PANEL_TYPES.LIST || panelTypes === PANEL_TYPES.TRACE;
|
|
|
|
|
|
|
|
|
|
return {
|
|
|
|
|
...(shouldRenderCustomOrderBy ? { renderOrderBy } : {}),
|
|
|
|
|
};
|
|
|
|
|
}, [panelTypes, renderOrderBy]);
|
|
|
|
|
|
2025-06-04 16:37:18 +05:30
|
|
|
console.log('query - section - selectedView', selectedView);
|
|
|
|
|
|
2023-06-19 15:57:58 +03:00
|
|
|
return (
|
|
|
|
|
<Container>
|
2025-06-04 16:37:18 +05:30
|
|
|
{/* {(selectedView === 'list' || selectedView === 'trace') && (
|
|
|
|
|
<div className="qb-search-view-container">
|
|
|
|
|
<QuerySearch />
|
|
|
|
|
|
|
|
|
|
<div className="traces-search-filter-in">in</div>
|
|
|
|
|
|
|
|
|
|
<SpanScopeSelector queryName={queryName} />
|
|
|
|
|
</div>
|
|
|
|
|
)}
|
|
|
|
|
|
|
|
|
|
{(selectedView === 'graph' || selectedView === 'table') && ( */}
|
|
|
|
|
<QueryBuilderV2
|
|
|
|
|
isListViewPanel={panelTypes === PANEL_TYPES.LIST}
|
|
|
|
|
config={{ initialDataSource: DataSource.TRACES, queryVariant: 'static' }}
|
|
|
|
|
queryComponents={queryComponents}
|
2023-06-23 21:39:59 +03:00
|
|
|
panelType={panelTypes}
|
2023-07-07 15:49:35 +03:00
|
|
|
filterConfigs={filterConfigs}
|
2024-03-01 14:51:50 +05:30
|
|
|
version="v3" // setting this to v3 as we this is rendered in logs explorer
|
2023-06-19 15:57:58 +03:00
|
|
|
/>
|
2025-06-04 16:37:18 +05:30
|
|
|
{/* )} */}
|
2023-06-19 15:57:58 +03:00
|
|
|
</Container>
|
|
|
|
|
);
|
|
|
|
|
}
|
|
|
|
|
|
2023-07-04 08:24:34 +03:00
|
|
|
export default memo(QuerySection);
|