PiechartOptionsBox.tsx 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. // Libraries
  2. import React, { PureComponent } from 'react';
  3. // Components
  4. import { Select, FormLabel, PanelOptionsGroup } from '@grafana/ui';
  5. // Types
  6. import { FormField, PanelEditorProps } from '@grafana/ui';
  7. import { PiechartType } from '@grafana/ui';
  8. import { PiechartOptions } from './types';
  9. import * as _ from 'lodash';
  10. const labelWidth = 8;
  11. const piechartOptions = [
  12. { value: PiechartType.PIE, label: 'Pie' },
  13. { value: PiechartType.DONUT, label: 'Donut' },
  14. ];
  15. export class PiechartOptionsBox extends PureComponent<PanelEditorProps<PiechartOptions>> {
  16. onPieTypeChange = ({ target }) => this.props.onChange({ ...this.props.options, pieType: target.value });
  17. onStrokeWidthChange = ({ target }) => this.props.onChange({ ...this.props.options, strokeWidth: target.value });
  18. render() {
  19. const { options } = this.props;
  20. const { pieType, strokeWidth } = options;
  21. return (
  22. <PanelOptionsGroup title="Piechart">
  23. <div className="gf-form">
  24. <FormLabel width={labelWidth}>Type</FormLabel>
  25. <Select
  26. width={12}
  27. options={piechartOptions}
  28. onChange={this.onPieTypeChange}
  29. value={piechartOptions.find(option => option.value === pieType)}
  30. />
  31. </div>
  32. <div className="gf-form">
  33. <FormField label="Divider width" labelWidth={labelWidth} onChange={this.onStrokeWidthChange} value={strokeWidth} />
  34. </div>
  35. </PanelOptionsGroup>
  36. );
  37. }
  38. }