Proyectos de Subversion LeadersLinked - SPA

Rev

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

Rev Autor Línea Nro. Línea
3495 stevensc 1
import { useRef, useState } from 'react';
3494 stevensc 2
 
3
import { useFetch, useSearch } from '@shared/hooks';
4
 
5
const CAPSULES_ROUTES = {
6
  pending: {
7
    link: '/microlearning/capsules-pending',
8
    params: {
9
      order_field: 'added_on',
10
      order_direction: 'desc'
11
    }
12
  },
13
  progress: {
14
    link: '/microlearning/capsules-in-progress',
15
    params: {}
16
  },
17
  completed: {
18
    link: '/microlearning/capsules-completed',
19
    params: {
20
      order_field: 'last_access_on',
21
      order_direction: 'desc'
22
    }
23
  }
24
};
25
 
26
const CAPSULES_CATEGORIES = [
27
  {
28
    label: 'Pendiente',
29
    value: 'pending'
30
  },
31
  {
32
    label: 'En curso',
33
    value: 'progress'
34
  },
35
  {
36
    label: 'Finalizado',
37
    value: 'completed'
38
  }
39
];
40
 
41
export function useMicrolearning() {
42
  const [category, setCategory] = useState(CAPSULES_CATEGORIES[0].value);
3495 stevensc 43
  const capsulesRoutes = useRef(CAPSULES_ROUTES);
44
  const capsuleCategories = useRef(CAPSULES_CATEGORIES);
3494 stevensc 45
 
3511 stevensc 46
  const { searchTerm, handleSearch } = useSearch();
3494 stevensc 47
 
3511 stevensc 48
  const { data: capsules, loading: capsulesLoading } = useFetch(
49
    capsulesRoutes.current[category].link,
50
    { initialParams: capsulesRoutes.current[category].params }
51
  );
52
 
3494 stevensc 53
  const { data: currentCapsule, loading: currentCapsuleLoading } = useFetch(
54
    '/microlearning/last-capsule-in-progress'
55
  );
56
 
3511 stevensc 57
  const filteredCapsules =
58
    capsules?.filter((capsule) => capsule.name.toLowerCase().includes(searchTerm.toLowerCase())) ||
59
    [];
60
 
3494 stevensc 61
  const changeCategory = (value) => {
62
    setCategory(value);
63
  };
64
 
65
  return {
3511 stevensc 66
    capsules: filteredCapsules,
3494 stevensc 67
    currentCapsule,
3500 stevensc 68
    capsulesLoading,
69
    currentCapsuleLoading,
3494 stevensc 70
    category,
3495 stevensc 71
    categories: capsuleCategories.current,
3499 stevensc 72
    searchTerm,
3494 stevensc 73
    changeCategory,
3499 stevensc 74
    searchCapsules: handleSearch
3494 stevensc 75
  };
76
}