Rev 4061 | Ir a la última revisión | Autoría | Comparar con el anterior | Ultima modificación | Ver Log |
/* eslint-disable react/prop-types */import React, { useEffect, useRef, useState } from 'react'import { useDispatch } from 'react-redux'import { deleteFeed } from '../../../redux/feed/feed.actions'import { addNotification } from '../../../redux/notification/notification.actions'import ConfirmModal from '../../../shared/confirm-modal/ConfirmModal'import { axios } from '../../../utils'const FeedHeader = ({ownerName,ownerImage,ownerTimeElapse,ownerUrl,feedDeleteUrl,feedUnique}) => {const [showConfirmModal, setShowConfirmModal] = useState(false)const [displayOption, setDisplayOption] = useState(false)const deleteButton = useRef()const dispatch = useDispatch()const handleShowConfirmModal = () => setShowConfirmModal(!showConfirmModal)const deleteFeedHandler = () => {axios.post(feedDeleteUrl).then((res) => {const { data } = resif (!data.success) {dispatch(addNotification({ style: 'danger', msg: data.data }))return}dispatch(addNotification({ style: 'success', msg: data.data }))handleShowConfirmModal()dispatch(deleteFeed(feedUnique))})}useEffect(() => {const handleClickOutside = (event) => {if (deleteButton.current && !deleteButton.current.contains(event.target)) {setDisplayOption(false)}}document.addEventListener('mousedown', handleClickOutside)return () => {document.removeEventListener('mousedown', handleClickOutside)}}, [deleteButton])return (<><div className="post_topbar" ><div className="usy-dt"><a href={ownerUrl}><imgsrc={ownerImage}alt=""style={{ width: '50px', height: 'auto' }}/></a><div className="usy-name"><a href={ownerUrl}><h3>{ownerName}</h3></a><span>{ownerTimeElapse}</span></div></div>{feedDeleteUrl &&<div className="cursor-pointer d-flex align-items-center"><imgsrc='/images/icons/options.png'className='cursor-pointer img-icon options'onClick={() => setDisplayOption(!displayOption)}/><div className={`feed-options ${displayOption ? 'active' : ''}`}><ul><li><buttonclassName="option-btn"onClick={handleShowConfirmModal}ref={deleteButton}><i className="fa fa-trash-o mr-1" />{LABELS.DELETE}</button></li></ul></div><ConfirmModalshow={showConfirmModal}onClose={() => handleShowConfirmModal(false)}onAccept={deleteFeedHandler}acceptLabel="Aceptar"/></div>}</div ></>)}export default FeedHeader