Rev 3156 | Ir a la última revisión | Autoría | Comparar con el anterior | Ultima modificación | Ver Log |
import React from 'react'
import { useNavigate } from 'react-router-dom'
import { Avatar, Button, Typography } from '@mui/material'
import { useDispatch } from 'react-redux'
import parse from 'html-react-parser'
import { axios } from '@app/utils'
import { addNotification } from '@app/redux/notification/notification.actions'
import Widget from '@components/UI/Widget'
export default function CompanyWidget({
company: {
cover,
name,
image,
overview,
link_contact,
link_unfollow,
link_follow,
link_request,
link_accept,
link_cancel,
link_reject,
link_leave
},
refetch = () => {}
}) {
const dispatch = useDispatch()
const navigate = useNavigate()
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 (
<Widget>
<Widget.Media height={150} src={cover} />
<Widget.Body>
<Avatar
src={image}
alt={name}
sx={{ mt: '-40px', width: '80px', height: '80px' }}
/>
<Typography variant='h2'>{name}</Typography>
<Typography variant='body1'>{parse(overview ?? '')}</Typography>
</Widget.Body>
<Widget.Actions>
{link_contact && (
<Button variant='primary' onClick={() => navigate(link_contact)}>
Mensaje
</Button>
)}
{link_unfollow && (
<Button
variant='secondary'
onClick={() => handleButtonAction(link_unfollow)}
>
Dejar de seguir
</Button>
)}
{link_follow && (
<Button
variant='primary'
onClick={() => handleButtonAction(link_follow)}
>
Seguir
</Button>
)}
{link_request && link_unfollow && (
<Button
variant='secondary'
onClick={() => handleButtonAction(link_request)}
>
¿Trabaja en esta empresa?
</Button>
)}
{link_accept && (
<Button
variant='primary'
onClick={() => handleButtonAction(link_accept)}
>
Aceptar
</Button>
)}
{link_cancel && (
<Button
variant='tertiary'
onClick={() => handleButtonAction(link_cancel)}
>
Cancelar
</Button>
)}
{link_reject && (
<Button
variant='tertiary'
onClick={() => handleButtonAction(link_reject)}
>
Rechazar
</Button>
)}
{link_leave && (
<Button
variant='secondary'
onClick={() => handleButtonAction(link_leave)}
>
Abandonar esta empresa
</Button>
)}
</Widget.Actions>
</Widget>
)
}