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