metricsCompatibilityQuery.tsx 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. import omit from 'lodash/omit';
  2. import EventView from 'sentry/utils/discover/eventView';
  3. import GenericDiscoverQuery, {
  4. DiscoverQueryProps,
  5. GenericChildrenProps,
  6. } from 'sentry/utils/discover/genericDiscoverQuery';
  7. export interface MetricsCompatibilityData {
  8. compatible_projects?: number[];
  9. dynamic_sampling_projects?: number[];
  10. }
  11. type QueryProps = Omit<DiscoverQueryProps, 'eventView' | 'api'> & {
  12. children: (props: GenericChildrenProps<MetricsCompatibilityData>) => React.ReactNode;
  13. eventView: EventView;
  14. };
  15. function getRequestPayload({
  16. eventView,
  17. location,
  18. }: Pick<DiscoverQueryProps, 'eventView' | 'location'>) {
  19. return omit(eventView.getEventsAPIPayload(location), [
  20. 'field',
  21. 'sort',
  22. 'per_page',
  23. 'query',
  24. ]);
  25. }
  26. export default function MetricsCompatibilityQuery({children, ...props}: QueryProps) {
  27. return (
  28. <GenericDiscoverQuery<MetricsCompatibilityData, {}>
  29. route="metrics-compatibility-sums"
  30. getRequestPayload={getRequestPayload}
  31. {...props}
  32. >
  33. {({tableData, ...rest}) => {
  34. return children({
  35. tableData,
  36. ...rest,
  37. });
  38. }}
  39. </GenericDiscoverQuery>
  40. );
  41. }