Rev 11225 | Autoría | Ultima modificación | Ver Log |
import React, { useState } from 'react'import { deleteFeed } from '../../redux/feed/feed.actions'import DeleteModal from '../../shared/DeleteModal'import CommentSection from './CommentSection'import parse from 'html-react-parser'const FeedTemplate = ({ feed }) => {const [showDropdown, setShowDropdown] = useState(false)const [showDeleteModal, setShowDeleteModal] = useState(false)const [isReadMoreActive, setIsReadMoreActive] = useState(false)const closeModal = () => setShowDeleteModal(false)const readMoreHandler = () => {setIsReadMoreActive(!isReadMoreActive)}const htmlParsedText = (fullStringText) => {const fullText = parse(fullStringText)if (fullStringText.length > 500) {const shortenedString = fullStringText.substr(0, 500)const shortenedText = parse(`${shortenedString}... `)return (<React.Fragment>{isReadMoreActive ? fullText : shortenedText}<button className='btn py-0 px-1' onClick={readMoreHandler}>{isReadMoreActive ? ' Leer menos' : ' Leer más'}</button></React.Fragment>)} else {return fullText}}return (<><div className="card"><div className="card-header border-0 pb-0"><div className="d-flex align-items-center justify-content-between"><div className="d-flex align-items-center"><div className="avatar me-2"><a href={feed.owner_url}><imgclassName="avatar-img rounded-circle"src={feed.owner_image}alt={`${feed.owner_name} profile image`}/></a></div><div><div className="nav nav-divider"><h6 className="nav-item card-title mb-0"><a href="#!">{feed.owner_name}</a></h6><span className="nav-item small">{feed.owner_time_elapse}</span></div></div></div><div className="dropdown" onClick={() => setShowDropdown(!showDropdown)}><buttonclassName="text-secondary btn btn-secondary-soft-hover py-1 px-2"><i className="fa fa-ellipsis-h icon" /></button><ulclassName={`dropdown-menu dropdown-menu-end ${showDropdown ? 'show' : ''}`}aria-labelledby="cardFeedAction"data-popper-placement="bottom-end"style={{position: 'absolute',inset: '0px 0px auto auto',margin: '0px',transform: 'translate(0px, 35px)'}}><liclassName="dropdown-item"><buttonclassName='btn'onClick={() => setShowDeleteModal(true)}type="button"><i className="fa fa-trash pe-2" />Borrar</button></li></ul></div></div></div><div className="card-body"><p>{htmlParsedText(feed.owner_description)}</p>{feed.owner_file_image&&<img className="card-img" src={feed.owner_file_image} alt="Post" />}{feed.owner_file_document&&<a href={feed.owner_file_document} target="_blank" rel="noreferrer">Descargar</a>}{feed.owner_file_video&&<video src={feed.owner_file_video} width="400" height="300" controls autoPlay muted />}<ul className="nav nav-stack py-3 small"><li className="nav-item"><button className="btn nav-link"><i className="fa fa-comments pe-1" />Comentarios ({feed.comments.length})</button></li><li className="nav-item dropdown"><a className="btn nav-link mb-0" ><i className="fa fa-share flip-horizontal ps-1" />Compartido ({feed.owner_shared})</a></li></ul><CommentSectioncomments_link_add={feed.comment_add_url}comments={feed.comments}owner_image={feed.owner_image}owner_url={feed.owner_url}/></div></div><DeleteModalurl={feed.feed_delete_url}isOpen={showDeleteModal}closeModal={closeModal}title="Esta seguro de borrar esta publicación?"action={() => deleteFeed(feed.feed_unique)}message="La publicación ha sido borrada"/></>)}export default React.memo(FeedTemplate)