Proyectos de Subversion LeadersLinked - SPA

Rev

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

Rev Autor Línea Nro. Línea
2897 stevensc 1
import React, { useState } from 'react'
2850 stevensc 2
import { Typography } from '@mui/material'
2838 stevensc 3
 
2892 stevensc 4
import { parse } from '@utils'
2891 stevensc 5
 
2893 stevensc 6
export default function FeedDescription({ description = '' }) {
2838 stevensc 7
  const [showMore, setShowMore] = useState(false)
2896 stevensc 8
 
9
  const stripText = description.replace(/<p>|<\/p>/g, '')
2897 stevensc 10
  const maxLength = 140
2896 stevensc 11
  const truncatedText = stripText.slice(0, maxLength)
12
  const isTruncated = stripText.length > maxLength
2838 stevensc 13
 
2897 stevensc 14
  const toggleShowMore = () => setShowMore((prevState) => !prevState)
2838 stevensc 15
 
2891 stevensc 16
  return (
2898 stevensc 17
    <Typography>
2896 stevensc 18
      {parse(showMore ? stripText : truncatedText)}
2891 stevensc 19
 
20
      {isTruncated && (
21
        <Typography
22
          onClick={toggleShowMore}
23
          variant='body2'
24
          color='primary'
25
          sx={{ cursor: 'pointer' }}
26
          aria-expanded={showMore}
27
        >
28
          {showMore ? ' Mostrar menos' : '... Mostrar más'}
2850 stevensc 29
        </Typography>
2891 stevensc 30
      )}
31
    </Typography>
32
  )
2838 stevensc 33
}