Proyectos de Subversion LeadersLinked - SPA

Rev

Rev 3571 | 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';
3556 stevensc 7
import { LastCapsuleProgressCard, CapsuleDetails } from '@microlearning/components';
3481 stevensc 8
 
3505 stevensc 9
export function CapsulesPage() {
3498 stevensc 10
  const {
11
    capsules,
3658 stevensc 12
    capsulesLoading,
3498 stevensc 13
    currentCapsule,
3658 stevensc 14
    currentCapsuleLoading,
3498 stevensc 15
    categories,
16
    category,
3658 stevensc 17
    searchTerm,
3498 stevensc 18
    changeCategory,
19
    searchCapsules
20
  } = useMicrolearning();
3491 stevensc 21
 
3481 stevensc 22
  return (
23
    <>
3501 stevensc 24
      {currentCapsuleLoading && <Spinner />}
3556 stevensc 25
      {currentCapsule && <LastCapsuleProgressCard capsule={currentCapsule} />}
3481 stevensc 26
 
3499 stevensc 27
      <Tabs value={category} onChange={(_, cat) => changeCategory(cat)}>
3494 stevensc 28
        {categories.map(({ label, value }) => (
29
          <Tabs.Item key={value} label={label} value={value} />
30
        ))}
31
      </Tabs>
3481 stevensc 32
 
3658 stevensc 33
      <SearchBar onChange={searchCapsules} value={searchTerm} />
3481 stevensc 34
 
3513 stevensc 35
      {capsulesLoading ? (
36
        <Spinner />
37
      ) : (
3500 stevensc 38
        <List
39
          items={capsules}
40
          renderItem={(capsule) => (
3571 stevensc 41
            <Link to={`/microlearning/capsules/${capsule.uuid}/details`}>
3556 stevensc 42
              <CapsuleDetails capsule={capsule} readOnly />
3500 stevensc 43
            </Link>
44
          )}
45
          emptyMessage='No hay cápsulas para mostrar'
3520 stevensc 46
          keyExtractor={(capsule) => capsule.uuid}
3500 stevensc 47
        />
48
      )}
3481 stevensc 49
    </>
50
  );
51
}