lineChart.tsx 1014 B

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