Proyectos de Subversion LeadersLinked - SPA

Rev

Autoría | Ultima modificación | Ver Log |

import React from 'react';
import { useNavigate } from 'react-router-dom';
import { Box, styled, Typography } from '@mui/material';

import { parse } from '@utils';

import CapsuleButton from './CapsuleButton';

const StyledCapsuleContainer = styled(Box)`
  border-radius: 6px;
  background: var(--font-color);
  box-shadow: 0px 0px 15px 0px rgba(0, 0, 0, 0.14);
  padding: 16px;
  display: flex;
  align-items: center;
  gap: 1rem;
  p {
    color: #fff;
    font-family: 'Roboto Condensed', 'Roboto';
    font-size: 14px;
    font-weight: 400;
    line-height: normal;
    margin-bottom: 8px;
  }
  h3 {
    color: var(--subtitle-color);
  }
`;

const StyledDetails = styled('div')`
  display: block;
  flex: 1;
`;

const StyledImage = styled('picture')`
  border-radius: 6px;
  overflow: hidden;
  max-width: 100px;
  aspect-ratio: 1/1.5;
  background-color: var(--bg-color-secondary);
  img {
    width: 100%;
    height: 100%;
    object-fit: cover;
  }
`;

const StyledTag = styled('div')`
  font-size: 12px;
  font-weight: 700;
  text-transform: uppercase;
  padding: 5px 10px;
  color: #fff;
  border-radius: 5px;
`;

export function CapsuleCard({ capsule: { name, description, image, completed, uuid }, ...rest }) {
  const navigate = useNavigate();

  return (
    <StyledCapsuleContainer {...rest}>
      <StyledDetails active>
        <StyledTag>{completed ? 'Completa' : 'En curso'}</StyledTag>

        <Typography variant='h3' mt={2}>
          {name}
        </Typography>

        {parse(description)}

        <CapsuleButton
          label='Ver cápsula'
          onClick={() => navigate(`/microlearning/capsules/${uuid}/slides`)}
        />
      </StyledDetails>

      <StyledImage>
        <img src={image} alt={name} />
      </StyledImage>
    </StyledCapsuleContainer>
  );
}