@@ -5,6 +5,7 @@ import * as Layout from 'sentry/components/layouts/thirds';
55import { DatePageFilter } from 'sentry/components/pageFilters/date/datePageFilter' ;
66import { EnvironmentPageFilter } from 'sentry/components/pageFilters/environment/environmentPageFilter' ;
77import { PageFilterBar } from 'sentry/components/pageFilters/pageFilterBar' ;
8+ import { useSpanSearchQueryBuilderProps } from 'sentry/components/performance/spanSearchQueryBuilder' ;
89import { TransactionSearchQueryBuilder } from 'sentry/components/performance/transactionSearchQueryBuilder' ;
910import { DataCategory } from 'sentry/types/core' ;
1011import { isAggregateField } from 'sentry/utils/discover/fields' ;
@@ -16,10 +17,33 @@ import {useMaxPickableDays} from 'sentry/utils/useMaxPickableDays';
1617import { useNavigate } from 'sentry/utils/useNavigate' ;
1718import { useOrganization } from 'sentry/utils/useOrganization' ;
1819import { useProjects } from 'sentry/utils/useProjects' ;
20+ import { TraceItemSearchQueryBuilder } from 'sentry/views/explore/components/traceItemSearchQueryBuilder' ;
21+ import { useTransactionSummaryEAP } from 'sentry/views/performance/eap/useTransactionSummaryEAP' ;
1922import { redirectToPerformanceHomepage } from 'sentry/views/performance/transactionSummary/pageLayout' ;
2023
2124import { TransactionProfilesContent } from './content' ;
2225
26+ function EAPSearchBar ( {
27+ projects,
28+ initialQuery,
29+ onSearch,
30+ } : {
31+ initialQuery : string ;
32+ onSearch : ( query : string ) => void ;
33+ projects : number [ ] ;
34+ } ) {
35+ const { spanSearchQueryBuilderProps} = useSpanSearchQueryBuilderProps ( {
36+ projects,
37+ initialQuery,
38+ onSearch,
39+ searchSource : 'transaction_profiles' ,
40+ } ) ;
41+
42+ return (
43+ < TraceItemSearchQueryBuilder { ...spanSearchQueryBuilderProps } disallowFreeText />
44+ ) ;
45+ }
46+
2347interface ProfilesProps {
2448 transaction : string ;
2549}
@@ -28,6 +52,7 @@ function Profiles({transaction}: ProfilesProps) {
2852 const navigate = useNavigate ( ) ;
2953 const location = useLocation ( ) ;
3054 const { projects} = useProjects ( ) ;
55+ const shouldUseEAP = useTransactionSummaryEAP ( ) ;
3156
3257 const project = projects . find ( p => p . id === location . query . project ) ;
3358
@@ -38,7 +63,11 @@ function Profiles({transaction}: ProfilesProps) {
3863
3964 const query = useMemo ( ( ) => {
4065 const conditions = new MutableSearch ( rawQuery ) ;
41- conditions . setFilterValues ( 'event.type' , [ 'transaction' ] ) ;
66+ if ( shouldUseEAP ) {
67+ conditions . setFilterValues ( 'is_transaction' , [ 'true' ] ) ;
68+ } else {
69+ conditions . setFilterValues ( 'event.type' , [ 'transaction' ] ) ;
70+ }
4271 conditions . setFilterValues ( 'transaction' , [ transaction ] ) ;
4372
4473 Object . keys ( conditions . filters ) . forEach ( field => {
@@ -48,7 +77,7 @@ function Profiles({transaction}: ProfilesProps) {
4877 } ) ;
4978
5079 return conditions . formatString ( ) ;
51- } , [ transaction , rawQuery ] ) ;
80+ } , [ transaction , rawQuery , shouldUseEAP ] ) ;
5281
5382 const handleSearch = useCallback (
5483 ( searchQuery : string ) => {
@@ -81,12 +110,20 @@ function Profiles({transaction}: ProfilesProps) {
81110 < EnvironmentPageFilter />
82111 < DatePageFilter { ...datePageFilterProps } />
83112 </ PageFilterBar >
84- < TransactionSearchQueryBuilder
85- projects = { projectIds }
86- initialQuery = { rawQuery }
87- onSearch = { handleSearch }
88- searchSource = "transaction_profiles"
89- />
113+ { shouldUseEAP ? (
114+ < EAPSearchBar
115+ projects = { projectIds ?? [ ] }
116+ initialQuery = { rawQuery }
117+ onSearch = { handleSearch }
118+ />
119+ ) : (
120+ < TransactionSearchQueryBuilder
121+ projects = { projectIds }
122+ initialQuery = { rawQuery }
123+ onSearch = { handleSearch }
124+ searchSource = "transaction_profiles"
125+ />
126+ ) }
90127 </ FilterActions >
91128 < TransactionProfilesContent query = { query } transaction = { transaction } />
92129 </ StyledMain >
0 commit comments