Rev 4097 | Rev 4817 | Ir a la última revisión | Autoría | Comparar con el anterior | Ultima modificación | Ver Log |
/* eslint-disable react/prop-types */import React, { useState, useRef } from 'react'import parse from "html-react-parser";import moment from 'moment'import { BiShareAlt } from 'react-icons/bi'import { EmailIcon, EmailShareButton, FacebookIcon, FacebookShareButton, RedditIcon, RedditShareButton, TelegramIcon, TelegramShareButton, TwitterIcon, TwitterShareButton, WhatsappIcon, WhatsappShareButton } from 'react-share';import { addNotification } from '../../redux/notification/notification.actions'import { useDispatch } from 'react-redux'import { axios } from '../../utils';import HomeNews from '../components/home-section/HomeNews';export default function PostView({ post = {} }) {const [shareUrl, setShareUrl] = useState()const dispatch = useDispatch()const getShareUrl = new Promise((resolve, reject) => {axios.get(post.share_external_url).then(({ data }) => {if (!data.success) {dispatch(addNotification({ style: 'danger', msg: data.data }))setShareOptions(false)return reject(data.data)}setShareUrl(data.data)return resolve(data.data)}).catch((err) => reject(err))});const baseUrl = `/storage/type/post/code/${post.uuid}/filename/`const shareContainer = useRef(null)const [shareOptions, setShareOptions] = useState(false)return (<div className="container"><div className="d-flex flex-column flex-md-row" style={{ gap: '1rem' }}><div className="col-12 col-md-8 peopleYouMayKnow"><div className="job_descp"><imgalt={post.title}src={baseUrl + post.image}className="Entradas"style={{ objectFit: 'contain' }}/></div><div className="job-status-bar"><ul className="reactions-list"><li className="position-relative"><buttontype="button"className="btn-indicator"onClick={() => setShareOptions(!shareOptions)}><BiShareAlt /></button>{shareOptions &&<div className="ext_share post" ref={shareContainer}><FacebookShareButton beforeOnClick={() => getShareUrl} url={shareUrl}><FacebookIcon size={32} round /></FacebookShareButton><TwitterShareButton beforeOnClick={() => getShareUrl} url={shareUrl}><TwitterIcon size={32} round /></TwitterShareButton><TelegramShareButton beforeOnClick={() => getShareUrl} url={shareUrl}><TelegramIcon size={32} round /></TelegramShareButton><WhatsappShareButton beforeOnClick={() => getShareUrl} url={shareUrl}><WhatsappIcon size={32} round /></WhatsappShareButton><RedditShareButton beforeOnClick={() => getShareUrl} url={shareUrl}><RedditIcon size={32} round /></RedditShareButton><EmailShareButton beforeOnClick={() => getShareUrl} url={shareUrl}><EmailIcon size={32} round /></EmailShareButton></div>}</li></ul></div><div className="post_topbar mt-3" ><div className="usy-dt"><div className="usy-name"><h3>{post.title}</h3><span>{moment(post.date).format('DD-MM-YYYY')}</span></div></div></div ><div className="job_descp"><div className="show-read-more">{parse(post.description)}</div></div></div><div className="col-12 col-md-4 p-0"><HomeNews currentPost={post.uuid} /></div></div></div >)}