Proyectos de Subversion LeadersLinked - SPA

Rev

Rev 3047 | Rev 3063 | Ir a la última revisión | Autoría | Comparar con el anterior | Ultima modificación | Ver Log |

import React, { useEffect, useState } from 'react'
import { useSelector } from 'react-redux'
import { IconButton, Typography } from '@mui/material'
import { Edit } from '@mui/icons-material'

import { parse } from '@utils'

import Widget from '@components/UI/Widget'
import EmptySection from '@components/UI/EmptySection'
import OverviewModal from './OverviewModal'

const Overview = ({ overview: defaultValue, id, edit }) => {
  const [overview, setOverview] = useState('')
  const [isModalOpen, setIsModalOpen] = useState(false)
  const labels = useSelector(({ intl }) => intl.labels)

  const toggleModal = () => {
    setIsModalOpen(!isModalOpen)
  }

  useEffect(() => {
    setOverview(defaultValue)
  }, [defaultValue])

  return (
    <>
      <Widget>
        <Widget.Header
          title='Visión general'
          renderAction={() => {
            if (!edit) return
            return (
              <IconButton onClick={toggleModal}>
                <Edit />
              </IconButton>
            )
          }}
        />

        <Widget.Body>
          {overview ? (
            <Typography>{parse(overview)}</Typography>
          ) : (
            <EmptySection align='left' message={labels.empty} />
          )}
        </Widget.Body>
      </Widget>

      <OverviewModal
        id={id}
        isOpen={isModalOpen}
        overview={overview}
        closeModal={toggleModal}
        onComplete={(newOverview) => setOverview(newOverview)}
      />
    </>
  )
}

export default Overview