1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- import {useMemo} from 'react';
- import {normalizeDateTimeParams} from 'sentry/components/organizations/pageFilters/parse';
- import {PageFilters} from 'sentry/types';
- import {useApiQuery} from 'sentry/utils/queryClient';
- import {MutableSearch} from 'sentry/utils/tokenizeSearch';
- import useOrganization from 'sentry/utils/useOrganization';
- export function useAggregateFlamegraphQuery({
- projects,
- datetime,
- environments,
- transaction,
- }: {
- datetime: Partial<PageFilters['datetime']>;
- environments: string[];
- projects: number[];
- transaction: string;
- }) {
- const organization = useOrganization();
- const path = `/organizations/${organization.slug}/profiling/flamegraph/`;
- const query = useMemo(() => {
- // TODO: this should contain the user query
- // wait util we fully switch over to the transactions dataset
- const conditions = new MutableSearch([]);
- conditions.setFilterValues('transaction', [transaction]);
- return conditions.formatString();
- }, [transaction]);
- const enabled = !!transaction && Array.isArray(projects) && projects.length > 0;
- const endpointOptions = {
- query: {
- project: projects,
- environment: environments,
- ...normalizeDateTimeParams(datetime),
- query,
- },
- };
- return useApiQuery<Profiling.Schema>([path, endpointOptions], {
- staleTime: 0,
- retry: false,
- enabled,
- });
- }
|