Proyectos de Subversion LeadersLinked - Antes de SPA

Rev

Rev 4987 | Rev 5011 | Ir a la última revisión | Mostrar el archivo completo | | | Autoría | Ultima modificación | Ver Log |

Rev 4987 Rev 5007
Línea 18... Línea 18...
18
import FeedCommentSection from '../../../components/feed/feed-comment/FeedCommentSection'
18
import FeedCommentSection from '../../../components/feed/feed-comment/FeedCommentSection'
19
import { connect, useDispatch } from 'react-redux'
19
import { connect, useDispatch } from 'react-redux'
20
import withExternalShare from './withExternalShare'
20
import withExternalShare from './withExternalShare'
21
import ConfirmModal from '../../../../shared/confirm-modal/ConfirmModal'
21
import ConfirmModal from '../../../../shared/confirm-modal/ConfirmModal'
22
import { deleteFeed } from '../../../../redux/feed/feed.actions'
22
import { deleteFeed } from '../../../../redux/feed/feed.actions'
-
 
23
import FeedModal from '../../../components/feed/FeedModal'
Línea 23... Línea 24...
23
 
24
 
-
 
25
const Feed = (props) => {
-
 
26
 
24
const Feed = ({
27
  const {
25
  isShare = false,
28
    isShare = false,
26
  feed_unique,
29
    feed_unique,
27
  feed_is_liked,
30
    feed_is_liked,
28
  feed_like_url,
31
    feed_like_url,
29
  feed_unlike_url,
32
    feed_unlike_url,
30
  feed_share_url,
33
    feed_share_url,
31
  feed_share_external_url,
34
    feed_share_external_url,
32
  feed_delete_url,
35
    feed_delete_url,
33
  feed_likes,
36
    feed_likes,
34
  owner_url,
37
    owner_url,
35
  owner_image,
38
    owner_image,
36
  owner_name,
39
    owner_name,
37
  owner_description,
40
    owner_description,
38
  owner_shared,
41
    owner_shared,
39
  owner_comments,
42
    owner_comments,
40
  owner_time_elapse,
43
    owner_time_elapse,
41
  owner_file_image_preview,
44
    owner_file_image_preview,
42
  owner_file_video,
45
    owner_file_video,
43
  owner_file_image,
46
    owner_file_image,
44
  owner_file_document,
47
    owner_file_document,
45
  comment_add_url,
48
    comment_add_url,
46
  comments,
49
    comments,
47
  shared_name,
50
    shared_name,
48
  shared_image,
51
    shared_image,
49
  shared_time_elapse,
52
    shared_time_elapse,
50
  shared_description,
53
    shared_description,
51
  shared_file_video,
54
    shared_file_video,
52
  shared_file_image_preview,
55
    shared_file_image_preview,
53
  shared_file_image,
56
    shared_file_image,
54
  owner_external_shared,
57
    owner_external_shared,
55
  shared_file_document,
58
    shared_file_document,
56
  shared_url,
59
    shared_url,
57
  feed_increment_external_counter_url,
60
    feed_increment_external_counter_url,
58
  addNotification, // REDUX ACTION
61
    addNotification, // REDUX ACTION
59
  openShareModal, // REDUX ACTION
62
    openShareModal, // REDUX ACTION
Línea 60... Línea 63...
60
}) => {
63
  } = props;
61
 
64
 
62
  const [feedIsLiked, setFeedIsLiked] = useState(feed_is_liked);
65
  const [feedIsLiked, setFeedIsLiked] = useState(feed_is_liked);
63
  const [likesState, setLikesState] = useState(feed_likes);
66
  const [likesState, setLikesState] = useState(feed_likes);
64
  const [totalComments, setTotalComments] = useState(owner_comments);
67
  const [totalComments, setTotalComments] = useState(owner_comments);
65
  const [externalShare, setExternalShare] = useState(owner_external_shared);
68
  const [externalShare, setExternalShare] = useState(owner_external_shared);
-
 
69
  const [sharedState, setSharedState] = useState(owner_shared);
Línea 66... Línea 70...
66
  const [sharedState, setSharedState] = useState(owner_shared);
70
  const [showComments, setShowComments] = useState(false);
67
  const [showComments, setShowComments] = useState(false);
71
  const [showModal, setShowModal] = useState(false);
68
 
72
 
69
  const handleLike = (url) => {
73
  const handleLike = (url) => {
Línea 81... Línea 85...
81
  const handleShare = () => openShareModal(feed_share_url, shareModalTypes.SHARE, feedTypes.DASHBOARD, feed_unique)
85
  const handleShare = () => openShareModal(feed_share_url, shareModalTypes.SHARE, feedTypes.DASHBOARD, feed_unique)
82
  const handleExternalShare = (value) => setExternalShare(value)
86
  const handleExternalShare = (value) => setExternalShare(value)
Línea 83... Línea 87...
83
 
87
 
Línea 84... Línea 88...
84
  const displayCommentSection = () => setShowComments(!showComments)
88
  const displayCommentSection = () => setShowComments(!showComments)
85
 
89
 
86
  const ExternalShareButton = withExternalShare(InputOption, feed_share_external_url, { 
90
  const ExternalShareButton = withExternalShare(InputOption, feed_share_external_url, {
87
    Icon: SendOutlinedIcon,
91
    Icon: SendOutlinedIcon,
88
     color: 'gray', 
92
    color: 'gray',
89
     title: 'Send',
93
    title: 'Send',
90
     shareUrl: feed_increment_external_counter_url,
94
    shareUrl: feed_increment_external_counter_url,
Línea 91... Línea 95...
91
     setValue: handleExternalShare
95
    setValue: handleExternalShare
Línea 92... Línea 96...
92
     })
96
  })
-
 
97
 
-
 
98
  useEffect(() => setSharedState(owner_shared), [owner_shared]);
93
 
99
 
Línea 94... Línea 100...
94
  useEffect(() => setSharedState(owner_shared), [owner_shared]);
100
  return (
95
 
101
    <>
96
  return (
102
      {showModal && <FeedModal isShow={true} feed={props} handleClose={() => setShowModal(false)} />}
97
    <div className='feed'>
103
      <div className='feed'>
98
 
104
 
99
      <Feed.Header
105
        <Feed.Header
100
        image={owner_image}
106
          image={owner_image}
101
        name={owner_name}
-
 
102
        timeElapsed={owner_time_elapse}
-
 
103
        viewUrl={owner_url}
-
 
104
        deleteUrl={feed_delete_url}
-
 
105
        feedUnique={feed_unique}
-
 
106
      />
-
 
107
 
-
 
108
      <div className='feed__body'>
-
 
109
        <Feed.Content
-
 
110
          ownerDescription={owner_description}
-
 
111
          ownerFileImage={owner_file_image}
-
 
112
          ownerFileImagepreview={owner_file_image_preview}
-
 
113
          ownerFileVideo={owner_file_video}
-
 
114
          ownerFileDocument={owner_file_document}
-
 
115
          sharedItem={{
-
 
116
            name: shared_name,
-
 
117
            image: shared_image,
-
 
118
            time_elapse: shared_time_elapse,
-
 
119
            description: shared_description,
-
 
120
            file_video: shared_file_video,
-
 
121
            file_image_preview: shared_file_image_preview,
107
          name={owner_name}
122
            file_image: shared_file_image,
-
 
Línea -... Línea 108...
-
 
108
          timeElapsed={owner_time_elapse}
123
            file_document: shared_file_document,
109
          viewUrl={owner_url}
124
            shared_url: shared_url
110
          deleteUrl={feed_delete_url}
125
          }}
111
          feedUnique={feed_unique}
126
        />
112
        />
-
 
113
 
127
      </div>
114
        <div className='feed__body' onClick={() => (owner_file_image || owner_file_video || owner_file_document) && setShowModal(true)}>
-
 
115
          <Feed.Content
128
 
116
            ownerDescription={owner_description}
129
      {!isShare &&
117
            ownerFileImage={owner_file_image}
130
        <div className="px-3 d-flex align-items-center justify-content-between">
118
            ownerFileImagepreview={owner_file_image_preview}
131
          {!!likesState &&
119
            ownerFileVideo={owner_file_video}
-
 
120
            ownerFileDocument={owner_file_document}
132
            <div className="d-inline-flex align-items-center" style={{ gap: '.5rem' }}>
121
            sharedItem={{
-
 
122
              name: shared_name,
133
              <RecommendIcon style={{ color: '#7405f9' }} />
123
              image: shared_image,
-
 
124
              time_elapse: shared_time_elapse,
-
 
125
              description: shared_description,
134
              <span>{likesState}</span>
126
              file_video: shared_file_video,
135
            </div>}
127
              file_image_preview: shared_file_image_preview,
136
          <div className="d-inline-flex align-items-center" style={{ gap: '5px' }}>
-
 
Línea -... Línea 128...
-
 
128
              file_image: shared_file_image,
-
 
129
              file_document: shared_file_document,
-
 
130
              shared_url: shared_url
-
 
131
            }}
-
 
132
          />
-
 
133
        </div>
-
 
134
 
-
 
135
        {!isShare &&
-
 
136
          <div className="px-3 d-flex align-items-center justify-content-between">
-
 
137
            {!!likesState &&
-
 
138
              <div className="d-inline-flex align-items-center" style={{ gap: '.5rem' }}>
-
 
139
                <RecommendIcon style={{ color: '#7405f9' }} />
-
 
140
                <span>{likesState}</span>
-
 
141
              </div>}
-
 
142
            <div className="d-inline-flex align-items-center" style={{ gap: '5px' }}>
137
            {!!totalComments && <span>{`${totalComments} comentarios`}</span>}
143
              {!!totalComments && <span>{`${totalComments} comentarios`}</span>}
138
            {!!sharedState && <span>{`${sharedState} compartidos`}</span>}
144
              {!!sharedState && <span>{`${sharedState} compartidos`}</span>}
139
            {!!externalShare && <span>{`${externalShare} enviados`}</span>}
145
              {!!externalShare && <span>{`${externalShare} enviados`}</span>}
140
          </div>
146
            </div>
141
        </div>
147
          </div>
142
      }
148
        }
143
 
149
 
144
      {
150
        {
145
        !isShare &&
151
          !isShare &&
146
        <div className='feed__buttons'>
152
          <div className='feed__buttons'>
147
          <InputOption
153
            <InputOption
148
            Icon={feedIsLiked ? ThumbUpAltIcon : ThumbUpAltOutlinedIcon}
154
              Icon={feedIsLiked ? ThumbUpAltIcon : ThumbUpAltOutlinedIcon}
149
            title='Like'
155
              title='Like'
150
            color={feedIsLiked ? '#7405f9' : 'gray'}
156
              color={feedIsLiked ? '#7405f9' : 'gray'}
151
            onClick={() => handleLike(feedIsLiked ? feed_unlike_url : feed_like_url)}
157
              onClick={() => handleLike(feedIsLiked ? feed_unlike_url : feed_like_url)}
152
          />
158
            />
153
          <InputOption
159
            <InputOption
154
            Icon={ChatOutlinedIcon}
160
              Icon={ChatOutlinedIcon}
155
            title='Comment'
161
              title='Comment'
156
            color='gray'
162
              color='gray'
-
 
163
              onClick={displayCommentSection}
-
 
164
            />
-
 
165
            <InputOption
-
 
166
              Icon={ShareOutlinedIcon}
-
 
167
              title='Share'
-
 
168
              color='gray'
-
 
169
              onClick={handleShare}
-
 
170
            />
-
 
171
            <ExternalShareButton />
-
 
172
          </div>
-
 
173
        }
-
 
174
 
-
 
175
        <div className='px-2 pb-2'>
157
            onClick={displayCommentSection}
176
          <FeedCommentSection
158
          />
-
 
159
          <InputOption
177
            feedId={feed_unique}
160
            Icon={ShareOutlinedIcon}
-
 
Línea 161... Línea -...
161
            title='Share'
-
 
162
            color='gray'
-
 
163
            onClick={handleShare}
-
 
164
          />
-
 
165
          <ExternalShareButton />
-
 
166
        </div>
-
 
167
      }
-
 
168
 
-
 
169
      <div className='px-2 pb-2'>
-
 
170
        <FeedCommentSection
178
            image={owner_image}
171
          feedId={feed_unique}
-
 
172
          image={owner_image}
179
            addUrl={comment_add_url}
173
          addUrl={comment_add_url}
180
            updateTotalComments={(total) => setTotalComments(total)}
174
          updateTotalComments={(total) => setTotalComments(total)}
181
            comments={comments}
Línea 175... Línea 182...
175
          comments={comments}
182
            isShow={showComments}
176
          isShow={showComments}
183
          />