Przeglądaj źródła

impl original throttling for subnavbar

Yuki Takei 6 lat temu
rodzic
commit
7decaa258b
1 zmienionych plików z 8 dodań i 4 usunięć
  1. 8 4
      src/client/js/services/PageContainer.js

+ 8 - 4
src/client/js/services/PageContainer.js

@@ -5,11 +5,10 @@ import loggerFactory from '@alias/logger';
 import * as entities from 'entities';
 import * as entities from 'entities';
 import * as toastr from 'toastr';
 import * as toastr from 'toastr';
 
 
-import { throttle } from 'throttle-debounce';
-
 const logger = loggerFactory('growi:services:PageContainer');
 const logger = loggerFactory('growi:services:PageContainer');
 const scrollThresForSticky = 50;
 const scrollThresForSticky = 50;
 const scrollThresForCompact = 100;
 const scrollThresForCompact = 100;
+const scrollThresForThrottling = 200;
 
 
 /**
 /**
  * Service container related to Page
  * Service container related to Page
@@ -72,14 +71,19 @@ export default class PageContainer extends Container {
     this.addWebSocketEventHandlers = this.addWebSocketEventHandlers.bind(this);
     this.addWebSocketEventHandlers = this.addWebSocketEventHandlers.bind(this);
     this.addWebSocketEventHandlers();
     this.addWebSocketEventHandlers();
 
 
-    window.addEventListener('scroll', throttle(150, () => {
+    window.addEventListener('scroll', () => {
       const currentYOffset = window.pageYOffset;
       const currentYOffset = window.pageYOffset;
 
 
+      // original throttling
+      if (this.state.isSubnavCompact && scrollThresForThrottling < currentYOffset) {
+        return;
+      }
+
       this.setState({
       this.setState({
         isHeaderSticky: scrollThresForSticky < currentYOffset,
         isHeaderSticky: scrollThresForSticky < currentYOffset,
         isSubnavCompact: scrollThresForCompact < currentYOffset,
         isSubnavCompact: scrollThresForCompact < currentYOffset,
       });
       });
-    }));
+    });
   }
   }
 
 
   /**
   /**