{
+ {videos.map((video: any) => {
+ const fullId = video ? `${video.id}-${video.user}` : undefined;
+ const existingVideo = hashMapVideos[fullId];
+ let hasHash = false;
+ let videoObj = video;
+ if (existingVideo) {
+ videoObj = existingVideo;
+ hasHash = true;
+ }
+ // nb. this prevents showing metadata for a video which
+ // belongs to a different user
+ if (
+ videoObj?.user &&
+ videoObj?.videoReference?.name &&
+ videoObj.user != videoObj.videoReference.name
+ ) {
+ return null;
+ }
+
+ if (hasHash && !videoObj?.videoImage && !videoObj?.image) {
+ return null;
+ }
+ const isPlaylist = videoObj?.service === "PLAYLIST";
+
+ if (isPlaylist) {
return (
- //{status === "LOADING" ? skeletonVideoCard : "has error"}
- skeletonVideoCard
+ setShowIcons(videoObj.id)}
+ onMouseLeave={() => setShowIcons(null)}
+ key={videoObj.id}
+ >
+
+ {videoObj?.user === username && (
+
+
+ {
+ dispatch(setEditPlaylist(videoObj));
+ }}
+ />
+
+
+ )}
+
+ {videoObj?.user !== username && (
+
+
+ {
+ blockUserFunc(videoObj?.user);
+ }}
+ />
+
+
+ )}
+
+
+ {
+ if (!hasHash) return;
+ navigate(`/playlist/${videoObj?.user}/${videoObj?.id}`);
+ }}
+ >
+
+ {videoObj?.title}
+
+ {
+ e.stopPropagation();
+ navigate(`/channel/${videoObj?.user}`);
+ }}
+ >
+
+
+ {videoObj?.user}
+
+
+ {videoObj?.created && (
+
+ {formatDate(videoObj.created)}
+
+ )}
+
+
+
+
+
+
+
);
- }}
- listItem={listItem}
- />
+ }
+
+ return (
+ setShowIcons(videoObj.id)}
+ onMouseLeave={() => setShowIcons(null)}
+ >
+
+ {videoObj?.user === username && (
+
+
+ {
+ dispatch(setEditVideo(videoObj));
+ }}
+ />
+
+
+ )}
+
+ {videoObj?.user !== username && (
+
+
+ {
+ blockUserFunc(videoObj?.user);
+ }}
+ />
+
+
+ )}
+
+ {
+ navigate(`/video/${videoObj?.user}/${videoObj?.id}`);
+ }}
+ >
+ {videoObj?.duration > minDuration && (
+
+
+ {formatTime(videoObj.duration)}
+
+
+ )}
+
+
+ {videoObj.title}
+
+
+ {
+ e.stopPropagation();
+ navigate(`/channel/${videoObj?.user}`);
+ }}
+ >
+
+
+ {videoObj?.user}
+
+
+ {videoObj?.created && (
+
+
+ {formatDate(videoObj.created)}
+
+
+ )}
+
+
+
+ );
+ })}