Proyectos de Subversion LeadersLinked - Antes de SPA

Rev

Rev 6830 | Autoría | Comparar con el anterior | Ultima modificación | Ver Log |

import React from 'react'
import { axios } from '../../utils'
import { useDispatch } from 'react-redux'
import { addNotification } from '../../redux/notification/notification.actions'
import parse from 'html-react-parser'

import Avatar from '../UI/AvatarImage'

const CompanyActions = ({
  cover,
  companyId,
  name,
  image,
  actionLinks,
  overview,
  refetch,
}) => {
  const dispatch = useDispatch()

  const handleButtonAction = async (link) => {
    const { data: response } = await axios.post(link)
    if (response.success) {
      dispatch(addNotification({ style: 'success', msg: response.data }))
      refetch()
    } else {
      dispatch(
        addNotification({ style: 'danger', msg: 'ha ocurrido un error' })
      )
    }
  }

  return (
    <div className="group__actions">
      <div className="group__actions-cover">
        <img
          src={`/storage/type/company-cover/code/${companyId}/${
            cover ? `filename/${cover}` : ''
          }`}
          alt="Profile cover"
          className="sidebar__cover"
        />
      </div>
      <div className="group__actions-body">
        <Avatar
          imageUrl={`/storage/type/company/code/${companyId}/${
            image ? `filename/${image}` : ''
          }`}
          size="xl"
          name={name}
        />
        <h1>{name}</h1>
        {overview && parse(overview)}
        <div className="row" style={{ gap: '.5rem' }}>
          {actionLinks?.link_contact && (
            <a
              href={actionLinks?.link_contact}
              className="button btn btn-primary"
            >
              Mensaje
            </a>
          )}
          {actionLinks?.link_unfollow && (
            <button
              className="button btn btn-secondary"
              onClick={() => handleButtonAction(actionLinks?.link_unfollow)}
            >
              Dejar de seguir
            </button>
          )}
          {actionLinks?.link_follow && (
            <button
              className="btn btn-primary"
              onClick={() => handleButtonAction(actionLinks?.link_follow)}
            >
              Seguir
            </button>
          )}
          {actionLinks?.link_request && actionLinks?.link_unfollow && (
            <button
              className="button btn btn-secondary"
              onClick={() => handleButtonAction(actionLinks?.link_request)}
            >
              ¿Trabaja en esta empresa?
            </button>
          )}
          {actionLinks?.link_accept && (
            <button
              className="button btn btn-primary"
              onClick={() => handleButtonAction(actionLinks?.link_accept)}
            >
              Aceptar
            </button>
          )}
          {actionLinks?.link_cancel && (
            <button
              title=""
              className="button btn btn-secondary"
              onClick={() => handleButtonAction(actionLinks?.link_cancel)}
            >
              Cancelar
            </button>
          )}
          {actionLinks?.link_reject && (
            <button
              title=""
              className="button btn btn-secondary"
              onClick={() => handleButtonAction(actionLinks?.link_reject)}
            >
              Rechazar
            </button>
          )}
          {actionLinks?.link_leave && (
            <button
              data-link="{{>link_leave}}"
              title=""
              className="button btn btn-secondary"
              onClick={() => handleButtonAction(actionLinks?.link_leave)}
            >
              Abandonar esta empresa
            </button>
          )}
        </div>
      </div>
    </div>
  )
}

export default CompanyActions