PieChartPanelEditor.tsx 1.2 KB

123456789101112131415161718192021222324252627282930313233343536
  1. import React, { PureComponent } from 'react';
  2. import { PanelEditorProps, PanelOptionsGrid, ValueMappingsEditor, ValueMapping } from '@grafana/ui';
  3. import { PieChartOptionsBox } from './PieChartOptionsBox';
  4. import { PieChartOptions } from './types';
  5. import { SingleStatValueEditor } from '../singlestat2/SingleStatValueEditor';
  6. import { SingleStatValueOptions } from '../singlestat2/types';
  7. export class PieChartPanelEditor extends PureComponent<PanelEditorProps<PieChartOptions>> {
  8. onValueMappingsChanged = (valueMappings: ValueMapping[]) =>
  9. this.props.onOptionsChange({
  10. ...this.props.options,
  11. valueMappings,
  12. });
  13. onValueOptionsChanged = (valueOptions: SingleStatValueOptions) =>
  14. this.props.onOptionsChange({
  15. ...this.props.options,
  16. valueOptions,
  17. });
  18. render() {
  19. const { onOptionsChange, options } = this.props;
  20. return (
  21. <>
  22. <PanelOptionsGrid>
  23. <SingleStatValueEditor onChange={this.onValueOptionsChanged} options={options.valueOptions} />
  24. <PieChartOptionsBox onOptionsChange={onOptionsChange} options={options} />
  25. </PanelOptionsGrid>
  26. <ValueMappingsEditor onChange={this.onValueMappingsChanged} valueMappings={options.valueMappings} />
  27. </>
  28. );
  29. }
  30. }