lineChart.tsx 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. import * as React from 'react';
  2. import type {LineSeriesOption} from 'echarts';
  3. import {Series} from 'sentry/types/echarts';
  4. import LineSeries from './series/lineSeries';
  5. import BaseChart from './baseChart';
  6. type ChartProps = Omit<React.ComponentProps<typeof BaseChart>, 'css'>;
  7. export type LineChartSeries = Series &
  8. Omit<LineSeriesOption, 'data' | 'name'> & {
  9. dataArray?: LineSeriesOption['data'];
  10. };
  11. type Props = Omit<ChartProps, 'series'> & {
  12. series: LineChartSeries[];
  13. seriesOptions?: LineSeriesOption;
  14. };
  15. function LineChart({series, seriesOptions, ...props}: Props) {
  16. return (
  17. <BaseChart
  18. {...props}
  19. series={series.map(({seriesName, data, dataArray, ...options}) =>
  20. LineSeries({
  21. ...seriesOptions,
  22. ...options,
  23. name: seriesName,
  24. data: dataArray || data?.map(({value, name}) => [name, value]),
  25. animation: false,
  26. animationThreshold: 1,
  27. animationDuration: 0,
  28. })
  29. )}
  30. />
  31. );
  32. }
  33. export default LineChart;