123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- import {MultiSeriesEventsStats} from 'sentry/types';
- import EventView, {encodeSort} from 'sentry/utils/discover/eventView';
- import {
- DiscoverQueryProps,
- useGenericDiscoverQuery,
- } from 'sentry/utils/discover/genericDiscoverQuery';
- import {useLocation} from 'sentry/utils/useLocation';
- import useOrganization from 'sentry/utils/useOrganization';
- import {
- getRetryDelay,
- shouldRetryHandler,
- } from 'sentry/views/starfish/utils/retryHandlers';
- export function useEventsStatsQuery({
- eventView,
- enabled,
- referrer,
- initialData,
- excludeOther = false,
- }: {
- eventView: EventView;
- enabled?: boolean;
- excludeOther?: boolean;
- initialData?: MultiSeriesEventsStats;
- referrer?: string;
- }) {
- const location = useLocation();
- const organization = useOrganization();
- const result = useGenericDiscoverQuery<MultiSeriesEventsStats, DiscoverQueryProps>({
- route: 'events-stats',
- eventView,
- location,
- orgSlug: organization.slug,
- getRequestPayload: () => ({
- ...eventView.getEventsAPIPayload(location),
- yAxis: eventView.yAxis,
- topEvents: eventView.topEvents,
- excludeOther: excludeOther === true ? 1 : 0,
- partial: 1,
- orderby: eventView.sorts?.[0] ? encodeSort(eventView.sorts?.[0]) : undefined,
- interval: eventView.interval,
- }),
- options: {
- enabled,
- refetchOnWindowFocus: false,
- retry: shouldRetryHandler,
- retryDelay: getRetryDelay,
- staleTime: Infinity,
- },
- referrer,
- });
- return {...result, data: result.isLoading ? initialData : result.data};
- }
|