Proyectos de Subversion LeadersLinked - Antes de SPA

Rev

Rev 3811 | Rev 4093 | Ir a la última revisión | | Comparar con el anterior | Ultima modificación | Ver Log |

Rev Autor Línea Nro. Línea
3361 stevensc 1
/* eslint-disable react/prop-types */
3810 stevensc 2
import React, { useState, useRef } from 'react'
1 www 3
import parse from "html-react-parser";
4
import moment from 'moment'
3363 stevensc 5
import { BiShareAlt } from 'react-icons/bi'
3470 stevensc 6
import { EmailIcon, EmailShareButton, FacebookIcon, FacebookShareButton, RedditIcon, RedditShareButton, TelegramIcon, TelegramShareButton, TwitterIcon, TwitterShareButton, WhatsappIcon, WhatsappShareButton } from 'react-share';
3810 stevensc 7
import { addNotification } from '../../redux/notification/notification.actions'
8
import { useDispatch } from 'react-redux'
4064 stevensc 9
import { axios } from '../../utils';
3361 stevensc 10
 
11
export default function PostView({ post = {} }) {
12
 
3810 stevensc 13
    const [shareUrl, setShareUrl] = useState()
14
    const dispatch = useDispatch()
15
 
16
    const getShareUrl = new Promise((resolve, reject) => {
17
        axios.get(post.share_external_url)
18
            .then(({ data }) => {
19
                if (!data.success) {
20
                    dispatch(addNotification({ style: 'danger', msg: data.data }))
21
                    setShareOptions(false)
22
                    return reject(data.data)
23
                }
24
                setShareUrl(data.data)
25
                return resolve(data.data)
26
            })
27
            .catch((err) => reject(err))
28
    });
29
 
1 www 30
    const baseUrl = `/storage/type/post/code/${post.uuid}/filename/`
3361 stevensc 31
    const shareContainer = useRef(null)
32
    const [shareOptions, setShareOptions] = useState(false)
33
 
1 www 34
    return (
3760 stevensc 35
        <div className="container">
3763 stevensc 36
            <div className='postContainer mx-auto col-md-8'>
3761 stevensc 37
                <div className="row">
38
                    <div className="col-md-7">
39
                        <div className="job_descp">
40
                            <img
41
                                alt={post.title}
42
                                src={baseUrl + post.image}
43
                                className="Entradas"
44
                            />
3760 stevensc 45
                        </div>
3761 stevensc 46
                        <div className="job-status-bar">
47
                            <ul className="reactions-list">
48
                                <li className="position-relative">
49
                                    <button
50
                                        type="button"
51
                                        className="btn-indicator"
52
                                        onClick={() => setShareOptions(!shareOptions)}
53
                                    >
54
                                        <BiShareAlt />
55
                                    </button>
3764 stevensc 56
                                    {shareOptions &&
57
                                        <div className="ext_share post" ref={shareContainer}>
3811 stevensc 58
                                            <FacebookShareButton beforeOnClick={() => getShareUrl} url={shareUrl}>
3761 stevensc 59
                                                <FacebookIcon size={32} round />
60
                                            </FacebookShareButton>
3811 stevensc 61
                                            <TwitterShareButton beforeOnClick={() => getShareUrl} url={shareUrl}>
3761 stevensc 62
                                                <TwitterIcon size={32} round />
63
                                            </TwitterShareButton>
3811 stevensc 64
                                            <TelegramShareButton beforeOnClick={() => getShareUrl} url={shareUrl}>
3761 stevensc 65
                                                <TelegramIcon size={32} round />
66
                                            </TelegramShareButton>
3811 stevensc 67
                                            <WhatsappShareButton beforeOnClick={() => getShareUrl} url={shareUrl}>
3761 stevensc 68
                                                <WhatsappIcon size={32} round />
69
                                            </WhatsappShareButton>
3811 stevensc 70
                                            <RedditShareButton beforeOnClick={() => getShareUrl} url={shareUrl}>
3761 stevensc 71
                                                <RedditIcon size={32} round />
72
                                            </RedditShareButton>
3811 stevensc 73
                                            <EmailShareButton beforeOnClick={() => getShareUrl} url={shareUrl}>
3761 stevensc 74
                                                <EmailIcon size={32} round />
75
                                            </EmailShareButton>
76
                                        </div>
77
                                    }
78
                                </li>
79
                            </ul>
80
                        </div>
1 www 81
                    </div>
3761 stevensc 82
                    <div className="col-md-5">
83
                        <div className="post_topbar" >
84
                            <div className="usy-dt">
85
                                <div className="usy-name">
86
                                    <h3>{post.title}</h3>
87
                                    <span>
88
                                        {moment(post.date).format('DD-MM-YYYY')}
89
                                    </span>
90
                                </div>
91
                            </div>
92
                        </div >
93
                        <div className="job_descp">
94
                            <div className="show-read-more">
95
                                {parse(post.description)}
96
                            </div>
97
                        </div>
3760 stevensc 98
                    </div>
1 www 99
                </div>
3757 stevensc 100
            </div >
3760 stevensc 101
        </div>
1 www 102
    )
103
}