Proyectos de Subversion LeadersLinked - SPA

Rev

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

import React from 'react'
import { Link } from 'react-router-dom'
import { Avatar, IconButton } from '@mui/material'
import { Clear, Delete, Done } from '@mui/icons-material'
import styled from 'styled-components'

import Modal from 'components/UI/modal/Modal'

const StyledMemberContainer = styled.div`
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  padding: 10px 0;
  border-top: 1px solid ${(props) => props.theme.border.color.primary};
`

const StyledMemberInfo = styled.div`
  display: flex;
  align-items: center;
  gap: 0.5rem;
`

const StyledMemberImage = styled(Avatar)`
  width: 40px !important;
  height: 40px !important;
`

const MembersModal = ({
  isShow = false,
  members = [],
  handleClose = function () {},
  handleAction = function () {}
}) => {
  return (
    <Modal
      title='Miembros'
      show={isShow}
      onClose={handleClose}
      onReject={handleClose}
      showFooter={false}
    >
      {members.map((member) => (
        <Member key={member.id} member={member} handleAction={handleAction} />
      ))}
    </Modal>
  )
}

const Member = ({ member = {}, handleAction = function () {} }) => {
  const { name = '', image = '', profile = '', actions = {} } = member

  return (
    <StyledMemberContainer>
      <StyledMemberInfo>
        <Link to={profile}>
          <StyledMemberImage src={image} alt={`${name} profile image`} />
        </Link>

        <h4>{name}</h4>
      </StyledMemberInfo>

      {actions?.link_approve && (
        <IconButton
          onClick={() => handleAction(actions.link_approve)}
          title='Aprobar'
        >
          <Done />
        </IconButton>
      )}
      {actions?.link_reject && (
        <IconButton
          onClick={() => handleAction(actions.link_reject)}
          title='Rechazar'
        >
          <Clear />
        </IconButton>
      )}
      {actions?.link_cancel && (
        <IconButton
          onClick={() => handleAction(actions.link_cancel)}
          title='Cancelar'
        >
          <Delete />
        </IconButton>
      )}
    </StyledMemberContainer>
  )
}

export default MembersModal