ValueOptions.tsx 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. import React, { PureComponent } from 'react';
  2. import { FormLabel, PanelOptionsProps, PanelOptionsGroup, Select } from '@grafana/ui';
  3. import UnitPicker from 'app/core/components/Select/UnitPicker';
  4. import { PiechartOptions } from './types';
  5. const statOptions = [
  6. { value: 'min', label: 'Min' },
  7. { value: 'max', label: 'Max' },
  8. { value: 'avg', label: 'Average' },
  9. { value: 'current', label: 'Current' },
  10. { value: 'total', label: 'Total' },
  11. ];
  12. const labelWidth = 6;
  13. export default class ValueOptions extends PureComponent<PanelOptionsProps<PiechartOptions>> {
  14. onUnitChange = unit => this.props.onChange({ ...this.props.options, unit: unit.value });
  15. onStatChange = stat => this.props.onChange({ ...this.props.options, stat: stat.value });
  16. render() {
  17. const { stat, unit } = this.props.options;
  18. return (
  19. <PanelOptionsGroup title="Value">
  20. <div className="gf-form">
  21. <FormLabel width={labelWidth}>Stat</FormLabel>
  22. <Select
  23. width={12}
  24. options={statOptions}
  25. onChange={this.onStatChange}
  26. value={statOptions.find(option => option.value === stat)}
  27. />
  28. </div>
  29. <div className="gf-form">
  30. <FormLabel width={labelWidth}>Unit</FormLabel>
  31. <UnitPicker defaultValue={unit} onChange={this.onUnitChange} />
  32. </div>
  33. </PanelOptionsGroup>
  34. );
  35. }
  36. }