Proyectos de Subversion LeadersLinked - SPA

Rev

Rev 3658 | Autoría | Comparar con el anterior | Ultima modificación | Ver Log |

import React from 'react';
import { Link } from 'react-router-dom';

import { useMicrolearning } from '@microlearning/hooks';

import { List, SearchBar, Spinner, Tabs } from '@shared/components';
import { LastCapsuleProgressCard, CapsuleDetails } from '@microlearning/components';

export function CapsulesPage() {
  const {
    capsules,
    capsulesLoading,
    currentCapsule,
    currentCapsuleLoading,
    categories,
    category,
    searchTerm,
    changeCategory,
    searchCapsules
  } = useMicrolearning();

  return (
    <>
      {currentCapsuleLoading && <Spinner />}
      {currentCapsule && <LastCapsuleProgressCard capsule={currentCapsule} />}

      <Tabs value={category} onChange={(_, cat) => changeCategory(cat)}>
        {categories.map(({ label, value }) => (
          <Tabs.Item key={value} label={label} value={value} />
        ))}
      </Tabs>

      <SearchBar onChange={searchCapsules} value={searchTerm} />

      {capsulesLoading ? (
        <Spinner />
      ) : (
        <List
          items={capsules}
          renderItem={(capsule) => (
            <Link to={`/microlearning/capsules/${capsule.uuid}/details`}>
              <CapsuleDetails capsule={capsule} readOnly />
            </Link>
          )}
          emptyMessage='No hay cápsulas para mostrar'
          keyExtractor={(capsule) => capsule.uuid}
        />
      )}
    </>
  );
}