Proyectos de Subversion LeadersLinked - SPA

Rev

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

Rev Autor Línea Nro. Línea
2899 stevensc 1
import React, { useMemo, useState } from 'react'
2
import { styled, Typography } from '@mui/material'
3
 
4
import ReactionsIcons from './reactions-icons'
5
import ReactionsModal from './reactions-modal'
6
 
7
const Row = styled('div')(() => ({
8
  display: 'flex',
9
  alignItems: 'center',
10
  gap: 0.5,
11
  cursor: 'pointer'
12
}))
13
 
14
export default function Reactions({ reactions = [], reactionsUrl = '' }) {
15
  const [showModal, setShowModal] = useState(false)
16
 
17
  const toggleModal = () => setShowModal((prevState) => !prevState)
18
 
19
  const totalReactions = useMemo(
20
    () => reactions.reduce((acc, r) => acc + parseInt(r.total), 0),
21
    [reactions]
22
  )
23
 
24
  return (
25
    <Row onClick={toggleModal}>
26
      <ReactionsIcons reactions={reactions} />
2900 stevensc 27
      {totalReactions ? (
2917 stevensc 28
        <Typography variant='overline'>{`${totalReactions} reacciones`}</Typography>
2900 stevensc 29
      ) : null}
2899 stevensc 30
      <ReactionsModal
31
        show={showModal}
32
        onClose={toggleModal}
33
        reactions={reactions}
34
        reactionsUsersUrl={reactionsUrl}
35
      />
36
    </Row>
37
  )
38
}