metricsCompatibilityQuerySums.tsx 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  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 MetricsCompatibilitySumData {
  8. sum: {
  9. metrics?: number;
  10. metrics_null?: number;
  11. metrics_unparam?: number;
  12. };
  13. }
  14. type QueryProps = Omit<DiscoverQueryProps, 'eventView' | 'api'> & {
  15. children: (props: GenericChildrenProps<MetricsCompatibilitySumData>) => React.ReactNode;
  16. eventView: EventView;
  17. };
  18. function getRequestPayload({
  19. eventView,
  20. location,
  21. }: Pick<DiscoverQueryProps, 'eventView' | 'location'>) {
  22. return omit(eventView.getEventsAPIPayload(location), [
  23. 'field',
  24. 'sort',
  25. 'per_page',
  26. 'query',
  27. ]);
  28. }
  29. export default function MetricsCompatibilitySumsQuery({children, ...props}: QueryProps) {
  30. return (
  31. <GenericDiscoverQuery<MetricsCompatibilitySumData, {}>
  32. route="metrics-compatibility"
  33. getRequestPayload={getRequestPayload}
  34. {...props}
  35. >
  36. {({tableData, ...rest}) => {
  37. return children({
  38. tableData,
  39. ...rest,
  40. });
  41. }}
  42. </GenericDiscoverQuery>
  43. );
  44. }