PieChartPanelEditor.tsx 1.2 KB

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