Rev 3573 | Rev 3654 | Ir a la última revisión | Autoría | Comparar con el anterior | Ultima modificación | Ver Log |
import React from 'react';import { useNavigate, useParams } from 'react-router-dom';import { Box, Button, Typography } from '@mui/material';import { useCapsule } from '@microlearning/hooks';import { parse } from '@shared/utils';import {Card,CardActions,CardContent,CardMedia,CommentList,Spinner} from '@shared/components';import { CapsuleCommentForm, SlideForm } from '@microlearning/components';import { useModal } from '@shared/hooks';export function CapsuleDetailsPage() {const { uuid } = useParams();const navigate = useNavigate();const { capsule, loading, addComment, deleteComment } = useCapsule(uuid);const { showModal } = useModal();const showContent = () => {if (!capsule?.slides?.length) return;if (capsule?.slides?.length > 1 || capsule?.slides[0]?.type !== 'video') {return navigate(`/microlearning/capsules/${uuid}`);}const firstSlide = capsule.slides[0];showModal(firstSlide.name, <SlideForm slideUuid={firstSlide.uuid} autoPlay />);};if (loading || !capsule) return <Spinner />;return (<Card><CardMediasrc={capsule.image}alt={`${capsule.name} capsule`}sx={{aspectRatio: 1 / 0.5,objectFit: 'contain',objectPosition: 'center'}}/><CardContent><Typography variant='h1'>{capsule.name}</Typography><Typography>{parse(capsule.description)}</Typography><Box sx={{ mt: 1, display: 'flex', flexDirection: 'column', gap: 1 }}><CapsuleCommentForm onSubmit={addComment} /><CommentList comments={capsule.comments} onDelete={deleteComment} /></Box></CardContent><CardActions>{capsule?.slides?.length > 0 && (<Button variant='contained' color='primary' onClick={showContent}>Ver contenido</Button>)}</CardActions></Card>);}