فهرست منبع

Merge pull request #2462 from weseek/imprv/add-eslint-new-rule

Imprv/add eslint new rule
Yuki Takei 5 سال پیش
والد
کامیت
494d9fbc66
4فایلهای تغییر یافته به همراه18 افزوده شده و 12 حذف شده
  1. 2 1
      package.json
  2. 6 6
      src/client/js/components/StickyStretchableScroller.jsx
  3. 1 1
      src/client/js/components/TableOfContents.jsx
  4. 9 4
      yarn.lock

+ 2 - 1
package.json

@@ -183,10 +183,11 @@
     "diff2html": "^3.1.2",
     "diff2html": "^3.1.2",
     "eazy-logger": "^3.0.2",
     "eazy-logger": "^3.0.2",
     "eslint": "^6.0.1",
     "eslint": "^6.0.1",
-    "eslint-config-weseek": "^1.0.3",
+    "eslint-config-weseek": "^1.0.4",
     "eslint-plugin-import": "^2.18.0",
     "eslint-plugin-import": "^2.18.0",
     "eslint-plugin-jest": "^23.0.3",
     "eslint-plugin-jest": "^23.0.3",
     "eslint-plugin-react": "^7.14.2",
     "eslint-plugin-react": "^7.14.2",
+    "eslint-plugin-react-hooks": "^4.0.4",
     "file-loader": "^5.0.2",
     "file-loader": "^5.0.2",
     "handsontable": "=6.2.2",
     "handsontable": "=6.2.2",
     "hard-source-webpack-plugin": "^0.13.1",
     "hard-source-webpack-plugin": "^0.13.1",

+ 6 - 6
src/client/js/components/StickyStretchableScroller.jsx

@@ -91,7 +91,7 @@ const StickyStretchableScroller = (props) => {
     if (contentsHeight < viewHeight) {
     if (contentsHeight < viewHeight) {
       $(scrollTargetSelector).slimScroll({ destroy: true });
       $(scrollTargetSelector).slimScroll({ destroy: true });
     }
     }
-  }, [contentsElemSelector, calcViewHeightFunc, calcContentsHeightFunc]);
+  }, [contentsElemSelector, calcViewHeightFunc, calcContentsHeightFunc, scrollTargetSelector]);
 
 
   const resetScrollbarDebounced = debounce(100, resetScrollbar);
   const resetScrollbarDebounced = debounce(100, resetScrollbar);
 
 
@@ -99,7 +99,7 @@ const StickyStretchableScroller = (props) => {
   const stickyChangeHandler = useCallback((event) => {
   const stickyChangeHandler = useCallback((event) => {
     logger.debug('StickyEvents.CHANGE detected');
     logger.debug('StickyEvents.CHANGE detected');
     resetScrollbar();
     resetScrollbar();
-  });
+  }, [resetScrollbar]);
 
 
   // setup effect by sticky event
   // setup effect by sticky event
   useEffect(() => {
   useEffect(() => {
@@ -118,7 +118,7 @@ const StickyStretchableScroller = (props) => {
     return () => {
     return () => {
       elem.removeEventListener(StickyEvents.CHANGE, stickyChangeHandler);
       elem.removeEventListener(StickyEvents.CHANGE, stickyChangeHandler);
     };
     };
-  }, []);
+  }, [stickyElemSelector, stickyChangeHandler]);
 
 
   // setup effect by resizing event
   // setup effect by resizing event
   useEffect(() => {
   useEffect(() => {
@@ -132,19 +132,19 @@ const StickyStretchableScroller = (props) => {
     return () => {
     return () => {
       window.removeEventListener('resize', resizeHandler);
       window.removeEventListener('resize', resizeHandler);
     };
     };
-  }, []);
+  }, [resetScrollbarDebounced]);
 
 
   // setup effect by isScrollTop
   // setup effect by isScrollTop
   useEffect(() => {
   useEffect(() => {
     if (navigationContainer.state.isScrollTop) {
     if (navigationContainer.state.isScrollTop) {
       resetScrollbar();
       resetScrollbar();
     }
     }
-  }, [navigationContainer.state.isScrollTop]);
+  }, [navigationContainer.state.isScrollTop, resetScrollbar]);
 
 
   // setup effect by update props
   // setup effect by update props
   useEffect(() => {
   useEffect(() => {
     resetScrollbarDebounced();
     resetScrollbarDebounced();
-  });
+  }, [resetScrollbarDebounced]);
 
 
   return (
   return (
     <>
     <>

+ 1 - 1
src/client/js/components/TableOfContents.jsx

@@ -27,7 +27,7 @@ const TableOfContents = (props) => {
 
 
     // window height - revisionToc top - .system-version height
     // window height - revisionToc top - .system-version height
     return window.innerHeight - containerTop - 20;
     return window.innerHeight - containerTop - 20;
-  });
+  }, []);
 
 
   const { tocHtml } = pageContainer.state;
   const { tocHtml } = pageContainer.state;
 
 

+ 9 - 4
yarn.lock

@@ -5474,10 +5474,10 @@ eslint-config-airbnb@^17.1.0:
     object.assign "^4.1.0"
     object.assign "^4.1.0"
     object.entries "^1.0.4"
     object.entries "^1.0.4"
 
 
-eslint-config-weseek@^1.0.3:
-  version "1.0.3"
-  resolved "https://registry.yarnpkg.com/eslint-config-weseek/-/eslint-config-weseek-1.0.3.tgz#420f583371447def71af11a78baf39d65a3d9e4a"
-  integrity sha512-AXOuaZomA/h34EHMT+CmhU7TTDbsyqCl702yaY0PGt6wype/YWra9phTbPyHjuI+Uh8gh9eKX2tAhnruKK3Ivw==
+eslint-config-weseek@^1.0.4:
+  version "1.0.4"
+  resolved "https://registry.yarnpkg.com/eslint-config-weseek/-/eslint-config-weseek-1.0.4.tgz#26f8dc5ce6e791f9eb379308f0fbac4902b25439"
+  integrity sha512-PkWrFlNDs5X+cyCDEZ6JFoHly0LQhDuPVbEiSxchguk9A8OvrUD+KBgIOWbQZSjI0YJV582zyGSTU5J1lwtpUw==
   dependencies:
   dependencies:
     eslint-config-airbnb "^17.1.0"
     eslint-config-airbnb "^17.1.0"
 
 
@@ -5520,6 +5520,11 @@ eslint-plugin-jest@^23.0.3:
   dependencies:
   dependencies:
     "@typescript-eslint/experimental-utils" "^2.5.0"
     "@typescript-eslint/experimental-utils" "^2.5.0"
 
 
+eslint-plugin-react-hooks@^4.0.4:
+  version "4.0.4"
+  resolved "https://registry.yarnpkg.com/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.0.4.tgz#aed33b4254a41b045818cacb047b81e6df27fa58"
+  integrity sha512-equAdEIsUETLFNCmmCkiCGq6rkSK5MoJhXFPFYeUebcjKgBmWWcgVOqZyQC8Bv1BwVCnTq9tBxgJFgAJTWoJtA==
+
 eslint-plugin-react@^7.14.2:
 eslint-plugin-react@^7.14.2:
   version "7.14.2"
   version "7.14.2"
   resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.14.2.tgz#94c193cc77a899ac0ecbb2766fbef88685b7ecc1"
   resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.14.2.tgz#94c193cc77a899ac0ecbb2766fbef88685b7ecc1"