Просмотр исходного кода

RefreshPicker: Handle empty intervals (#17585)

* Refresh picker empty

* RefreshPicker: refactoring
Tobias Skarhed 6 лет назад
Родитель
Сommit
2f00087a08
1 измененных файлов с 7 добавлено и 16 удалено
  1. 7 16
      packages/grafana-ui/src/components/RefreshPicker/RefreshPicker.tsx

+ 7 - 16
packages/grafana-ui/src/components/RefreshPicker/RefreshPicker.tsx

@@ -19,29 +19,20 @@ export interface Props {
 }
 
 export class RefreshPicker extends PureComponent<Props> {
-  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<SelectOptionItem<string>> => {
+    const intervalsOrDefault = intervals || defaultIntervals;
+    const options = intervalsOrDefault
+      .filter(str => str !== '')
+      .map(interval => ({ label: interval, value: interval }));
 
-  intervalsToOptions = (intervals: string[] = defaultIntervals): Array<SelectOptionItem<string>> => {
-    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<Props> {
 
   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;