Proyectos de Subversion LeadersLinked - SPA

Rev

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

Rev Autor Línea Nro. Línea
3482 stevensc 1
import React from 'react';
3481 stevensc 2
import { useParams } from 'react-router-dom';
3
 
3659 stevensc 4
import { useAlert, useApi, useModal } from '@shared/hooks';
5
import { getCapsule } from '@microlearning/services';
3481 stevensc 6
 
3482 stevensc 7
import { Grid, PageHeader, Spinner } from '@shared/components';
8
import { SlideCard } from '@microlearning/components';
3520 stevensc 9
import { SlideForm } from '@microlearning/components/slides/slides-carousel';
3481 stevensc 10
 
3571 stevensc 11
export function CapsulePage() {
3572 stevensc 12
  const { uuid } = useParams();
3481 stevensc 13
 
3659 stevensc 14
  const { showError } = useAlert();
15
 
16
  const { data: capsule, loading } = useApi(getCapsule, {
17
    autoFetch: true,
18
    autoFetchArgs: [uuid],
19
    onError: (error) => {
20
      showError(error.message);
21
    }
22
  });
23
 
3520 stevensc 24
  const { showModal } = useModal();
25
 
3658 stevensc 26
  const showSlide = (name, uuid) => {
27
    showModal(name, <SlideForm uuid={uuid} />);
3482 stevensc 28
  };
3481 stevensc 29
 
3482 stevensc 30
  if (loading || !capsule) return <Spinner />;
31
 
3481 stevensc 32
  return (
3482 stevensc 33
    <>
34
      <PageHeader title={capsule.name} goBack />
35
      <Grid
36
        items={capsule.slides}
3520 stevensc 37
        emptyMessage='No hay contenidos para mostrar'
3521 stevensc 38
        renderItem={(slide) => (
39
          <SlideCard slide={slide} onClick={() => showSlide(slide.name, slide.uuid)} />
40
        )}
3519 stevensc 41
        keyExtractor={(slide) => slide.uuid}
3482 stevensc 42
      />
43
    </>
3481 stevensc 44
  );
3482 stevensc 45
}