From 2f00087a0860c4dc1dbdf1889eeb58f415ee03f6 Mon Sep 17 00:00:00 2001 From: Tobias Skarhed Date: Sat, 15 Jun 2019 08:24:52 +0200 Subject: [PATCH] RefreshPicker: Handle empty intervals (#17585) * Refresh picker empty * RefreshPicker: refactoring --- .../RefreshPicker/RefreshPicker.tsx | 23 ++++++------------- 1 file changed, 7 insertions(+), 16 deletions(-) diff --git a/packages/grafana-ui/src/components/RefreshPicker/RefreshPicker.tsx b/packages/grafana-ui/src/components/RefreshPicker/RefreshPicker.tsx index 60a8973ca09..ecde154320b 100644 --- a/packages/grafana-ui/src/components/RefreshPicker/RefreshPicker.tsx +++ b/packages/grafana-ui/src/components/RefreshPicker/RefreshPicker.tsx @@ -19,29 +19,20 @@ export interface Props { } export class RefreshPicker extends PureComponent { - static defaultProps = { - intervals: defaultIntervals, - }; - constructor(props: Props) { super(props); } - hasNoIntervals = () => { - const { intervals } = this.props; - // Current implementaion returns an array with length of 1 consisting of - // an empty string when auto-refresh is empty in dashboard settings - if (!intervals || intervals.length < 1 || (intervals.length === 1 && intervals[0] === '')) { - return true; - } - return false; - }; + intervalsToOptions = (intervals: string[] | undefined): Array> => { + const intervalsOrDefault = intervals || defaultIntervals; + const options = intervalsOrDefault + .filter(str => str !== '') + .map(interval => ({ label: interval, value: interval })); - intervalsToOptions = (intervals: string[] = defaultIntervals): Array> => { - const options = intervals.map(interval => ({ label: interval, value: interval })); if (this.props.hasLiveOption) { options.unshift(liveOption); } + options.unshift(offOption); return options; }; @@ -56,7 +47,7 @@ export class RefreshPicker extends PureComponent { render() { const { onRefresh, intervals, tooltip, value } = this.props; - const options = this.intervalsToOptions(this.hasNoIntervals() ? defaultIntervals : intervals); + const options = this.intervalsToOptions(intervals); const currentValue = value || ''; const selectedValue = options.find(item => item.value === currentValue) || offOption;