Proyectos de Subversion LeadersLinked - SPA

Rev

Rev 3505 | Rev 3527 | Ir a la última revisión | Mostrar el archivo completo | | | Autoría | Ultima modificación | Ver Log |

Rev 3505 Rev 3511
Línea 1... Línea 1...
1
import React, { useCallback, useEffect, useRef, useState } from 'react';
1
import React, { useCallback, useEffect, useRef } from 'react';
2
 
-
 
3
import { useSelector } from 'react-redux';
2
import { useSelector } from 'react-redux';
4
import { Box, Typography } from '@mui/material';
3
import { Box, Typography } from '@mui/material';
Línea 5... Línea -...
5
 
-
 
6
import { useNearScreen, useMicroLearning } from '@hooks';
4
 
-
 
5
import { useFetch } from '@shared/hooks';
7
import { api } from '@shared/libs';
6
 
8
import { List, Spinner } from '@shared/components';
7
import { List } from '@shared/components';
Línea 9... Línea 8...
9
import DetailTag from '@microlearning/components/DetailTag';
8
import { DetailTag } from '@microlearning/components';
10
 
-
 
11
export function TimelinePage() {
-
 
12
  const { link_timeline: linkTimeline } = useMicroLearning();
-
 
13
  const [items, setItems] = useState([]);
-
 
14
  const [isLoading, setIsLoading] = useState(false);
-
 
15
  const [totalPages, setTotalPages] = useState(1);
9
 
-
 
10
export function TimelinePage() {
16
  const [currentPage, setCurrentPage] = useState(2);
11
  const loaderRef = useRef(null);
17
  const loaderRef = useRef(null);
-
 
18
  const [isIntercepting] = useNearScreen({
-
 
19
    externalRef: loaderRef,
-
 
20
    once: false,
-
 
Línea 21... Línea 12...
21
    rootMargin: '20px'
12
 
22
  });
13
  const { data, loading, refetch } = useFetch('/microlearning/timeline');
23
 
14
 
Línea 42... Línea 33...
42
 
33
 
43
  useEffect(() => {
34
  useEffect(() => {
44
    if (isIntercepting) fetchData(linkTimeline);
35
    if (isIntercepting) fetchData(linkTimeline);
Línea 45... Línea -...
45
  }, [isIntercepting]);
-
 
46
 
-
 
47
  useEffect(() => {
-
 
48
    const getData = (url = '') => {
-
 
49
      setIsLoading(true);
-
 
50
 
-
 
51
      api
-
 
52
        .get(url)
-
 
53
        .then((response) => {
-
 
54
          const { data, success } = response.data;
-
 
55
 
-
 
56
          if (!success) {
-
 
57
            throw new Error(data);
-
 
58
          }
-
 
59
 
-
 
60
          setTotalPages(data.total.pages);
-
 
61
          setItems(data.current.items);
-
 
62
        })
-
 
63
        .catch((err) => console.log(err.message))
-
 
64
        .finally(() => setIsLoading(false));
-
 
65
    };
-
 
66
 
-
 
67
    getData(linkTimeline);
-
 
68
  }, [linkTimeline]);
36
  }, [isIntercepting]);
69
 
37
 
70
  return (
38
  return (
Línea 71... Línea 39...
71
    <>
39
    <>