fix: add hideSpanScopeSelector prop to QueryBuilderSearchV2 and hide from non qb consumers (#7716)

* feat: add hideSpanScopeSelector prop to QueryBuilderSearchV2 and hide from non qb consumers

* fix: update the tests to check rendering based on hideSpanScopeSelector

* feat: display span selector in exceptions page
This commit is contained in:
Shaheer Kochai 2025-05-06 19:02:57 +04:30 committed by GitHub
parent 6e0b50dd60
commit 08579242eb
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 9 additions and 8 deletions

View File

@ -458,6 +458,7 @@ export const Query = memo(function Query({
query={query} query={query}
onChange={handleChangeTagFilters} onChange={handleChangeTagFilters}
whereClauseConfig={filterConfigs?.filters} whereClauseConfig={filterConfigs?.filters}
hideSpanScopeSelector={query.dataSource !== DataSource.TRACES}
/> />
) : ( ) : (
<QueryBuilderSearch <QueryBuilderSearch

View File

@ -92,6 +92,7 @@ interface QueryBuilderSearchV2Props {
suffixIcon?: React.ReactNode; suffixIcon?: React.ReactNode;
hardcodedAttributeKeys?: BaseAutocompleteData[]; hardcodedAttributeKeys?: BaseAutocompleteData[];
operatorConfigKey?: OperatorConfigKeys; operatorConfigKey?: OperatorConfigKeys;
hideSpanScopeSelector?: boolean;
} }
export interface Option { export interface Option {
@ -126,6 +127,7 @@ function QueryBuilderSearchV2(
whereClauseConfig, whereClauseConfig,
hardcodedAttributeKeys, hardcodedAttributeKeys,
operatorConfigKey, operatorConfigKey,
hideSpanScopeSelector,
} = props; } = props;
const { registerShortcut, deregisterShortcut } = useKeyboardHotkeys(); const { registerShortcut, deregisterShortcut } = useKeyboardHotkeys();
@ -936,11 +938,6 @@ function QueryBuilderSearchV2(
); );
}; };
const isTracesDataSource = useMemo(
() => query.dataSource === DataSource.TRACES,
[query.dataSource],
);
return ( return (
<div className="query-builder-search-v2"> <div className="query-builder-search-v2">
<Select <Select
@ -1025,7 +1022,7 @@ function QueryBuilderSearchV2(
); );
})} })}
</Select> </Select>
{isTracesDataSource && <SpanScopeSelector queryName={query.queryName} />} {!hideSpanScopeSelector && <SpanScopeSelector queryName={query.queryName} />}
</div> </div>
); );
} }
@ -1037,6 +1034,7 @@ QueryBuilderSearchV2.defaultProps = {
whereClauseConfig: {}, whereClauseConfig: {},
hardcodedAttributeKeys: undefined, hardcodedAttributeKeys: undefined,
operatorConfigKey: undefined, operatorConfigKey: undefined,
hideSpanScopeSelector: true,
}; };
export default QueryBuilderSearchV2; export default QueryBuilderSearchV2;

View File

@ -26,7 +26,7 @@ const queryClient = new QueryClient({
}); });
describe('Span scope selector', () => { describe('Span scope selector', () => {
it('should render span scope selector when data source is TRACES', () => { it('should render span scope selector when hideSpanScopeSelector is false', () => {
const { getByTestId } = render( const { getByTestId } = render(
<QueryClientProvider client={queryClient}> <QueryClientProvider client={queryClient}>
<QueryBuilderSearchV2 <QueryBuilderSearchV2
@ -34,6 +34,7 @@ describe('Span scope selector', () => {
...initialQueryBuilderFormValues, ...initialQueryBuilderFormValues,
dataSource: DataSource.TRACES, dataSource: DataSource.TRACES,
}} }}
hideSpanScopeSelector={false}
onChange={jest.fn()} onChange={jest.fn()}
/> />
</QueryClientProvider>, </QueryClientProvider>,
@ -42,7 +43,7 @@ describe('Span scope selector', () => {
expect(getByTestId('span-scope-selector')).toBeInTheDocument(); expect(getByTestId('span-scope-selector')).toBeInTheDocument();
}); });
it('should not render span scope selector for non-TRACES data sources', () => { it('should not render span scope selector by default (i.e. when hideSpanScopeSelector is true)', () => {
const { queryByTestId } = render( const { queryByTestId } = render(
<QueryClientProvider client={queryClient}> <QueryClientProvider client={queryClient}>
<QueryBuilderSearchV2 <QueryBuilderSearchV2

View File

@ -52,6 +52,7 @@ function ResourceAttributesFilter(): JSX.Element | null {
query={query} query={query}
onChange={handleChangeTagFilters} onChange={handleChangeTagFilters}
operatorConfigKey={OperatorConfigKeys.EXCEPTIONS} operatorConfigKey={OperatorConfigKeys.EXCEPTIONS}
hideSpanScopeSelector={false}
/> />
</div> </div>
); );