vitalsDetailsTableQuery.tsx 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. import * as React from 'react';
  2. import {MetaType} from 'app/utils/discover/eventView';
  3. import GenericDiscoverQuery, {
  4. DiscoverQueryProps,
  5. GenericChildrenProps,
  6. } from 'app/utils/discover/genericDiscoverQuery';
  7. import withApi from 'app/utils/withApi';
  8. type BaseDataRow = {
  9. id: string;
  10. project: string;
  11. transaction: string;
  12. count: number;
  13. count_unique_user: number;
  14. key_transaction: number;
  15. [key: string]: React.ReactText;
  16. };
  17. type LCPDataRow = BaseDataRow & {
  18. p50_measurements_lcp: number;
  19. p75_measurements_lcp: number;
  20. p95_measurements_lcp: number;
  21. compare_numeric_aggregate_p75_measurements_lcp_greater_2500: number;
  22. compare_numeric_aggregate_p75_measurements_lcp_greater_4000: number;
  23. };
  24. type FCPDataRow = BaseDataRow & {
  25. p50_measurements_fcp: number;
  26. p75_measurements_fcp: number;
  27. p95_measurements_fcp: number;
  28. compare_numeric_aggregate_p75_measurements_fcp_greater_2500: number;
  29. compare_numeric_aggregate_p75_measurements_fcp_greater_4000: number;
  30. };
  31. type CLSDataRow = BaseDataRow & {
  32. p50_measurements_cls: number;
  33. p75_measurements_cls: number;
  34. p95_measurements_cls: number;
  35. compare_numeric_aggregate_p75_measurements_cls_greater_2500: number;
  36. compare_numeric_aggregate_p75_measurements_cls_greater_4000: number;
  37. };
  38. type FIDDataRow = BaseDataRow & {
  39. p50_measurements_fid: number;
  40. p75_measurements_fid: number;
  41. p95_measurements_fid: number;
  42. compare_numeric_aggregate_p75_measurements_fid_greater_2500: number;
  43. compare_numeric_aggregate_p75_measurements_fid_greater_4000: number;
  44. };
  45. // TODO(perf): Fix if/once we can send column aliases along with a request
  46. export type TableDataRow = LCPDataRow | FCPDataRow | CLSDataRow | FIDDataRow;
  47. export type TableData = {
  48. data: Array<TableDataRow>;
  49. meta?: MetaType;
  50. };
  51. type ChildrenProps = Omit<GenericChildrenProps<TableData>, 'tableData'> & {
  52. tableData: TableData | null;
  53. };
  54. type QueryProps = DiscoverQueryProps & {
  55. children: (props: ChildrenProps) => React.ReactNode;
  56. };
  57. function VitalsCardsDiscoverQuery(props: QueryProps) {
  58. return <GenericDiscoverQuery<TableData, QueryProps> route="eventsv2" {...props} />;
  59. }
  60. export default withApi(VitalsCardsDiscoverQuery);