Proyectos de Subversion LeadersLinked - Backend

Rev

| Ultima modificación | Ver Log |

Rev Autor Línea Nro. Línea
7291 stevensc 1
import React, { useState } from 'react'
7788 stevensc 2
import { useDispatch } from 'react-redux'
7480 stevensc 3
import { deleteFeed } from '../../redux/feed/feed.actions'
7427 stevensc 4
import DeleteModal from '../../shared/DeleteModal'
7386 stevensc 5
import CommentSection from './CommentSection'
7205 stevensc 6
 
7783 stevensc 7
const FeedTemplate = React.memo(({ feed }) => {
7205 stevensc 8
 
7291 stevensc 9
    const [showDropdown, setShowDropdown] = useState(false)
7427 stevensc 10
    const [showDeleteModal, setShowDeleteModal] = useState(false)
7788 stevensc 11
    const dispatch = useDispatch()
7291 stevensc 12
 
7427 stevensc 13
    const closeModal = () => setShowDeleteModal(false)
7291 stevensc 14
 
7205 stevensc 15
    return (
7427 stevensc 16
        <>
17
            <div className="card">
18
                <div className="card-header border-0 pb-0">
19
                    <div className="d-flex align-items-center justify-content-between">
20
                        <div className="d-flex align-items-center">
21
                            <div className="avatar me-2">
22
                                <a href={feed.owner_url}>
23
                                    <img
24
                                        className="avatar-img rounded-circle"
25
                                        src={feed.owner_image}
26
                                        alt={`${feed.owner_name} profile image`}
27
                                    />
28
                                </a>
7205 stevensc 29
                            </div>
7427 stevensc 30
                            <div>
31
                                <div className="nav nav-divider">
32
                                    <h6 className="nav-item card-title mb-0">
33
                                        <a href="#!">{feed.owner_name}</a>
34
                                    </h6>
35
                                    <span className="nav-item small">{feed.owner_time_elapse}</span>
36
                                </div>
37
                            </div>
7205 stevensc 38
                        </div>
7427 stevensc 39
                        <div className="dropdown" onClick={() => setShowDropdown(!showDropdown)}>
40
                            <button
41
                                className="text-secondary btn btn-secondary-soft-hover py-1 px-2"
7291 stevensc 42
                            >
7427 stevensc 43
                                <i className="fa fa-ellipsis-h icon" />
44
                            </button>
45
                            <ul
46
                                className={`dropdown-menu dropdown-menu-end ${showDropdown ? "show" : ''}`}
47
                                aria-labelledby="cardFeedAction"
48
                                data-popper-placement="bottom-end"
49
                                style={{
50
                                    position: 'absolute',
51
                                    inset: '0px 0px auto auto',
52
                                    margin: '0px',
53
                                    transform: 'translate(0px, 35px)'
54
                                }}
55
                            >
56
                                <li
57
                                    className="dropdown-item"
7386 stevensc 58
                                >
7427 stevensc 59
                                    <button
60
                                        className='btn'
61
                                        onClick={() => setShowDeleteModal(true)}
62
                                        type="button"
63
                                    >
64
                                        <i className="fa fa-trash pe-2" />
65
                                        Delete post
66
                                    </button>
67
                                </li>
68
                            </ul>
69
                        </div>
7205 stevensc 70
                    </div>
71
                </div>
7427 stevensc 72
                <div className="card-body">
73
                    <p>{feed.owner_description}</p>
74
                    {
75
                        feed.owner_file_image
76
                        &&
77
                        <img
78
                            className="card-img"
79
                            src={feed.owner_file_image}
80
                            alt="Post"
81
                        />
82
                    }
7485 stevensc 83
                    {
84
                        feed.owner_file_document
85
                        &&
7537 stevensc 86
                        <a href={feed.owner_file_document} target="_blank">
87
                            Descargar
88
                        </a>
7485 stevensc 89
                    }
90
                    {
91
                        feed.owner_file_video
92
                        &&
93
                        <video
94
                            src={feed.owner_file_video}
95
                            width="400"
96
                            height="300"
97
                            controls
98
                            autoPlay
99
                            muted
100
                        />
101
                    }
7427 stevensc 102
                    <ul className="nav nav-stack py-3 small">
103
                        <li className="nav-item">
104
                            <button className="btn nav-link">
105
                                <i className="fa fa-comments pe-1" />
7485 stevensc 106
                                Comments ({feed.comments.length})
7427 stevensc 107
                            </button>
108
                        </li>
109
                        <li className="nav-item dropdown">
110
                            <a className="btn nav-link mb-0" >
111
                                <i className="fa fa-share flip-horizontal ps-1" />
112
                                Share ({feed.owner_shared})
113
                            </a>
114
                        </li>
115
                    </ul>
116
                    <CommentSection
117
                        comments_link_add={feed.comment_add_url}
118
                        comments={feed.comments}
119
                        owner_image={feed.owner_image}
120
                        owner_url={feed.owner_url}
7205 stevensc 121
                    />
7427 stevensc 122
                </div>
7205 stevensc 123
            </div>
7427 stevensc 124
            <DeleteModal
125
                url={feed.feed_delete_url}
126
                isOpen={showDeleteModal}
127
                closeModal={closeModal}
7428 stevensc 128
                title="Esta seguro de borrar esta publicación?"
7480 stevensc 129
                action={() => deleteFeed(feed.feed_unique)}
7427 stevensc 130
            />
131
        </>
7205 stevensc 132
    )
7783 stevensc 133
})
134
 
7205 stevensc 135
export default FeedTemplate