diff --git a/packages/grafana-ui/src/components/Gauge/Gauge.tsx b/packages/grafana-ui/src/components/Gauge/Gauge.tsx index a7435a56b3c..b8c257f4138 100644 --- a/packages/grafana-ui/src/components/Gauge/Gauge.tsx +++ b/packages/grafana-ui/src/components/Gauge/Gauge.tsx @@ -9,7 +9,7 @@ import { Themeable } from '../../index'; type TimeSeriesValue = string | number | null; export interface Props extends Themeable { - decimals: number; + decimals?: number | null; height: number; valueMappings: ValueMapping[]; maxValue: number; diff --git a/public/app/plugins/panel/gauge/SingleStatValueEditor.tsx b/public/app/plugins/panel/gauge/SingleStatValueEditor.tsx index e182f68ddd8..86c177bb5e5 100644 --- a/public/app/plugins/panel/gauge/SingleStatValueEditor.tsx +++ b/public/app/plugins/panel/gauge/SingleStatValueEditor.tsx @@ -35,7 +35,15 @@ export class SingleStatValueEditor extends PureComponent { onDecimalChange = event => { if (!isNaN(event.target.value)) { - this.props.onChange({ ...this.props.options, decimals: event.target.value }); + this.props.onChange({ + ...this.props.options, + decimals: parseInt(event.target.value, 10), + }); + } else { + this.props.onChange({ + ...this.props.options, + decimals: null, + }); } }; @@ -45,6 +53,11 @@ export class SingleStatValueEditor extends PureComponent { render() { const { stat, unit, decimals, prefix, suffix } = this.props.options; + let decimalsString = ''; + if (Number.isFinite(decimals)) { + decimalsString = decimals.toString(); + } + return (
@@ -65,7 +78,7 @@ export class SingleStatValueEditor extends PureComponent { labelWidth={labelWidth} placeholder="auto" onChange={this.onDecimalChange} - value={decimals || ''} + value={decimalsString} type="number" /> diff --git a/public/app/plugins/panel/gauge/types.ts b/public/app/plugins/panel/gauge/types.ts index 4ece1b98c7c..10dd475eff5 100644 --- a/public/app/plugins/panel/gauge/types.ts +++ b/public/app/plugins/panel/gauge/types.ts @@ -15,7 +15,7 @@ export interface SingleStatValueOptions { suffix: string; stat: string; prefix: string; - decimals: number; + decimals?: number | null; } export const defaults: GaugeOptions = { @@ -26,7 +26,7 @@ export const defaults: GaugeOptions = { valueOptions: { prefix: '', suffix: '', - decimals: 0, + decimals: null, stat: 'avg', unit: 'none', },