Proyectos de Subversion LeadersLinked - SPA

Rev

Rev 3604 | Mostrar el archivo completo | | | Autoría | Ultima modificación | Ver Log |

Rev 3604 Rev 3607
Línea 1... Línea 1...
1
import { useCallback, useRef } from 'react';
1
import { useEffect, useRef } from 'react';
Línea 2... Línea 2...
2
 
2
 
3
export const useInfinityScroll = ({ isLoading, hasMore, onIntersect }) => {
3
export const useInfinityScroll = ({ onIntersect }) => {
Línea 4... Línea -...
4
  const observer = useRef(null);
-
 
5
 
4
  const elementRef = useRef(null);
-
 
5
 
6
  const lastElementRef = useCallback(
6
  useEffect(() => {
7
    (node) => {
7
    elementRef.current = new IntersectionObserver((entries) => {
-
 
8
      if (entries[0].isIntersecting) {
-
 
9
        onIntersect();
Línea 8... Línea 10...
8
      if (isLoading) return;
10
      }
9
      if (observer.current) observer.current.disconnect();
11
    });
10
 
-
 
11
      observer.current = new IntersectionObserver((entries) => {
12
 
12
        if (entries[0].isIntersecting && hasMore) {
13
    return () => {
Línea 13... Línea -...
13
          onIntersect();
-
 
14
        }
-
 
15
      });
-
 
16
 
-
 
17
      if (node) observer.current.observe(node);
-
 
18
    },
14
      if (elementRef.current) elementRef.current.disconnect();
19
    [isLoading, hasMore, onIntersect]
15
    };