Explorar o código

Merge pull request #3494 from overleaf/ae-eslint-hooks

Re-enable react-hooks/exhaustive-deps

GitOrigin-RevId: 2a767596d2cfd41b8bfbd3928dc43c266ec7dc0c
Timothée Alby %!s(int64=5) %!d(string=hai) anos
pai
achega
aef02eb0a4

+ 1 - 2
services/web/frontend/js/features/file-tree/components/file-tree-root.js

@@ -30,8 +30,7 @@ function FileTreeRoot({
 
 
   useEffect(() => {
   useEffect(() => {
     if (isReady) onInit()
     if (isReady) onInit()
-    // eslint-disable-next-line react-hooks/exhaustive-deps
-  }, [isReady])
+  }, [isReady, onInit])
   if (!isReady) return null
   if (!isReady) return null
 
 
   return (
   return (

+ 1 - 2
services/web/frontend/js/features/file-tree/contexts/file-tree-selectable.js

@@ -81,8 +81,7 @@ export function FileTreeSelectableProvider({
       findInTree(fileTreeData, id)
       findInTree(fileTreeData, id)
     )
     )
     onSelect(selectedEntities)
     onSelect(selectedEntities)
-    // eslint-disable-next-line react-hooks/exhaustive-deps
-  }, [fileTreeData, selectedEntityIds])
+  }, [fileTreeData, selectedEntityIds, onSelect])
 
 
   useEffect(() => {
   useEffect(() => {
     // listen for `editor.openDoc` and selected that doc
     // listen for `editor.openDoc` and selected that doc

+ 1 - 2
services/web/frontend/js/features/outline/components/outline-pane.js

@@ -30,8 +30,7 @@ function OutlinePane({
 
 
   useEffect(() => {
   useEffect(() => {
     onToggle(isOpen)
     onToggle(isOpen)
-    // eslint-disable-next-line react-hooks/exhaustive-deps
-  }, [isOpen])
+  }, [isOpen, onToggle])
 
 
   const headerClasses = classNames('outline-pane', {
   const headerClasses = classNames('outline-pane', {
     'outline-pane-disabled': !isTexFile
     'outline-pane-disabled': !isTexFile

+ 1 - 2
services/web/frontend/js/shared/hooks/use-expand-collapse.js

@@ -33,8 +33,7 @@ function useExpandCollapse({
         })
         })
       }
       }
     }
     }
-    // eslint-disable-next-line react-hooks/exhaustive-deps
-  }, [isExpanded])
+  }, [isExpanded, collapsedSize, dimension])
 
 
   const expandableClasses = classNames(
   const expandableClasses = classNames(
     'expand-collapse-container',
     'expand-collapse-container',

+ 4 - 5
services/web/frontend/js/shared/hooks/use-resize-observer.js

@@ -1,13 +1,13 @@
-import { useLayoutEffect, useRef } from 'react'
+import { useLayoutEffect, useRef, useCallback } from 'react'
 
 
 function useResizeObserver(observedElement, observedData, callback) {
 function useResizeObserver(observedElement, observedData, callback) {
   const resizeObserver = useRef()
   const resizeObserver = useRef()
 
 
-  function observe() {
+  const observe = useCallback(() => {
     resizeObserver.current = new ResizeObserver(function(elementsObserved) {
     resizeObserver.current = new ResizeObserver(function(elementsObserved) {
       callback(elementsObserved[0])
       callback(elementsObserved[0])
     })
     })
-  }
+  }, [callback])
 
 
   function unobserve(observedCurrent) {
   function unobserve(observedCurrent) {
     resizeObserver.current.unobserve(observedCurrent)
     resizeObserver.current.unobserve(observedCurrent)
@@ -30,8 +30,7 @@ function useResizeObserver(observedElement, observedData, callback) {
         }
         }
       }
       }
     }
     }
-    // eslint-disable-next-line react-hooks/exhaustive-deps
-  }, [observedElement, observedData])
+  }, [observedElement, observedData, observe])
 }
 }
 
 
 export default useResizeObserver
 export default useResizeObserver