Proyectos de Subversion LeadersLinked - SPA

Rev

Rev 3483 | Rev 3491 | Ir a la última revisión | | Comparar con el anterior | Ultima modificación | Ver Log |

Rev Autor Línea Nro. Línea
3481 stevensc 1
import React, { useEffect, useState } from 'react';
2
 
3
import { useMicroLearning, useFetch } from '@hooks';
4
 
5
import { List, SearchBar } from '@shared/components';
6
import { CapsuleItem } from '@microlearning/components';
7
import CapsuleCard from '@microlearning/components/CapsuleCard';
3490 stevensc 8
import Tabs from '@components/UI/Tabs';
3481 stevensc 9
 
10
export default function CapsulesPage() {
11
  const {
3490 stevensc 12
    link_capsules_completed: linkCapsulesCompleted,
13
    link_capsules_in_progress: linkCapsulesInProgress,
3481 stevensc 14
    link_capsules_pending: linkCapsulesPending,
15
    link_last_capsule_in_progress: linkLastCapsuleInProgress
16
  } = useMicroLearning();
17
 
18
  const [activeLink, setActiveLink] = useState('');
19
 
20
  const { data: capsuleInProgess } = useFetch(linkLastCapsuleInProgress, null);
21
  const { data: capsules } = useFetch(activeLink, []);
22
 
3490 stevensc 23
  const handleChange = (e, url) => setActiveLink(url);
24
 
3481 stevensc 25
  useEffect(() => {
26
    if (!linkCapsulesPending) return;
27
 
28
    setActiveLink(linkCapsulesPending + '?order_field=added_on&order_direction=desc');
29
  }, [linkCapsulesPending]);
30
 
31
  return (
32
    <>
33
      <CapsuleCard capsule={capsuleInProgess || capsules[0]} />
34
 
3490 stevensc 35
      <Tabs value={activeLink} onChange={handleChange}>
3481 stevensc 36
        <Tabs.Item
37
          label='Pendiente'
38
          value={
39
            linkCapsulesPending &&
40
            linkCapsulesPending + '?order_field=added_on&order_direction=desc'
41
          }
42
        />
43
        <Tabs.Item label='En curso' value={linkCapsulesInProgress} />
44
        <Tabs.Item
45
          label='Finalizado'
46
          value={
47
            linkCapsulesCompleted &&
48
            linkCapsulesCompleted + '?order_field=last_access_on&order_direction=desc'
49
          }
50
        />
3490 stevensc 51
      </Tabs>
3481 stevensc 52
 
53
      <SearchBar />
54
 
55
      <List
56
        items={capsules}
57
        renderItem={(capsule) => <CapsuleItem capsule={capsule} readOnly />}
58
        emptyMessage='No hay cápsulas para mostrar'
59
        keyExtractor='uuid'
60
      />
61
    </>
62
  );
63
}