mirror of
https://github.com/hanzoai/sentinel.git
synced 2026-09-29 22:34:33 +00:00
51 lines
1.5 KiB
TypeScript
51 lines
1.5 KiB
TypeScript
import {useDiscoverQuery} from 'sentry/utils/discover/discoverQuery';
|
|
import EventView from 'sentry/utils/discover/eventView';
|
|
import {useLocation} from 'sentry/utils/useLocation';
|
|
import useOrganization from 'sentry/utils/useOrganization';
|
|
import usePageFilters from 'sentry/utils/usePageFilters';
|
|
import {
|
|
BrowserStarfishFields,
|
|
useBrowserModuleFilters,
|
|
} from 'sentry/views/performance/browser/useBrowserFilters';
|
|
|
|
/**
|
|
* Gets a list of all interactionElements on the selected project(s)
|
|
*/
|
|
export const useInteractionElementQuery = () => {
|
|
const location = useLocation();
|
|
const pageFilters = usePageFilters();
|
|
const {slug: orgSlug} = useOrganization();
|
|
const browserFilters = useBrowserModuleFilters();
|
|
|
|
const fields = ['interactionElement', 'count()'];
|
|
const queryConditions = [
|
|
'has:interactionElement',
|
|
browserFilters.page ? `transaction:"${browserFilters.page}"` : '',
|
|
browserFilters['transaction.op']
|
|
? `transaction.op:"${browserFilters[BrowserStarfishFields.TRANSACTION_OP]}"`
|
|
: '',
|
|
];
|
|
|
|
const eventView = EventView.fromNewQueryWithPageFilters(
|
|
{
|
|
fields,
|
|
name: 'Interaction module - page selector',
|
|
version: 2,
|
|
query: queryConditions.join(' '),
|
|
orderby: 'interactionElement',
|
|
},
|
|
pageFilters.selection
|
|
);
|
|
|
|
const result = useDiscoverQuery({
|
|
eventView,
|
|
location,
|
|
orgSlug,
|
|
limit: 100,
|
|
});
|
|
|
|
const interactionElements =
|
|
result?.data?.data.map(row => row.interactionElement.toString()) || [];
|
|
return {...result, data: interactionElements};
|
|
};
|