Proyectos de Subversion LeadersLinked - SPA

Rev

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

Rev Autor Línea Nro. Línea
3494 stevensc 1
import React from 'react';
3491 stevensc 2
import { Link } from 'react-router-dom';
3481 stevensc 3
 
3494 stevensc 4
import { useMicrolearning } from '@microlearning/hooks';
3481 stevensc 5
 
3494 stevensc 6
import { List, SearchBar, Spinner, Tabs } from '@shared/components';
3491 stevensc 7
import { CapsuleCard, CapsuleItem } from '@microlearning/components';
3481 stevensc 8
 
9
export default function CapsulesPage() {
3498 stevensc 10
  const {
11
    capsules,
12
    currentCapsule,
13
    categories,
14
    category,
3500 stevensc 15
    capsulesLoading,
16
    currentCapsuleLoading,
3499 stevensc 17
    searchTerm,
3498 stevensc 18
    changeCategory,
19
    searchCapsules
20
  } = useMicrolearning();
3491 stevensc 21
 
3500 stevensc 22
  if ((capsulesLoading && currentCapsuleLoading) || !capsules) return <Spinner />;
3481 stevensc 23
 
24
  return (
25
    <>
3493 stevensc 26
      {currentCapsule && <CapsuleCard capsule={currentCapsule} />}
3481 stevensc 27
 
3499 stevensc 28
      <Tabs value={category} onChange={(_, cat) => changeCategory(cat)}>
3494 stevensc 29
        {categories.map(({ label, value }) => (
30
          <Tabs.Item key={value} label={label} value={value} />
31
        ))}
32
      </Tabs>
3481 stevensc 33
 
3499 stevensc 34
      <SearchBar onChange={searchCapsules} value={searchTerm} />
3481 stevensc 35
 
3500 stevensc 36
      {capsulesLoading ? (
37
        <Spinner />
38
      ) : (
39
        <List
40
          items={capsules}
41
          renderItem={(capsule) => (
42
            <Link to={`/microlearning/capsules/${capsule.uuid}`}>
43
              <CapsuleItem capsule={capsule} readOnly />
44
            </Link>
45
          )}
46
          emptyMessage='No hay cápsulas para mostrar'
47
          keyExtractor='uuid'
48
        />
49
      )}
3481 stevensc 50
    </>
51
  );
52
}