Kaynağa Gözat

Optimized so we only do checks when dropdown is opened

Hugo Häggmark 6 yıl önce
ebeveyn
işleme
a344091d82
1 değiştirilmiş dosya ile 15 ekleme ve 11 silme
  1. 15 11
      public/app/routes/GrafanaCtrl.ts

+ 15 - 11
public/app/routes/GrafanaCtrl.ts

@@ -283,17 +283,21 @@ export function grafanaAppDirective(playlistSrv, contextSrv, $timeout, $rootScop
 
         // hide time picker
         const timePickerDropDownIsOpen = elem.find('.gf-timepicker-dropdown').length > 0;
-        const targetIsInTimePickerDropDown = target.parents('.gf-timepicker-dropdown').length > 0;
-        const targetIsInTimePickerNav = target.parents('.gf-timepicker-nav').length > 0;
-        const targetIsDatePickerRowBtn = target.parents('td[id^="datepicker-"]').length > 0;
-        const targetIsDatePickerHeaderBtn = target.parents('button[id^="datepicker-"]').length > 0;
-        if (
-          timePickerDropDownIsOpen &&
-          !targetIsInTimePickerNav &&
-          !targetIsInTimePickerDropDown &&
-          !targetIsDatePickerRowBtn &&
-          !targetIsDatePickerHeaderBtn
-        ) {
+        if (timePickerDropDownIsOpen) {
+          const targetIsInTimePickerDropDown = target.parents('.gf-timepicker-dropdown').length > 0;
+          const targetIsInTimePickerNav = target.parents('.gf-timepicker-nav').length > 0;
+          const targetIsDatePickerRowBtn = target.parents('td[id^="datepicker-"]').length > 0;
+          const targetIsDatePickerHeaderBtn = target.parents('button[id^="datepicker-"]').length > 0;
+
+          if (
+            targetIsInTimePickerNav ||
+            targetIsInTimePickerDropDown ||
+            targetIsDatePickerRowBtn ||
+            targetIsDatePickerHeaderBtn
+          ) {
+            return;
+          }
+
           scope.$apply(() => {
             scope.appEvent('closeTimepicker');
           });