0
0
Fork 0
mirror of https://github.com/VueTubeApp/VueTube synced 2024-11-22 19:25:16 +00:00
VueTube/NUXT/components/gridRenderers/videoWithContextRenderer.vue

63 lines
1.6 KiB
Vue
Raw Normal View History

<template>
2022-04-23 05:22:18 +00:00
<base-video-renderer
:vidId="video.videoId"
:thumbnails="video.thumbnail.thumbnails"
2022-04-23 05:53:24 +00:00
:thumbnailOverlayStyle="thumbnailOverlayStyle"
:thumbnailOverlayText="thumbnailOverlayText"
2022-04-23 05:22:18 +00:00
:channelUrl="
$rendererUtils.getNavigationEndpoints(
video.shortBylineText.runs[0].navigationEndpoint
)
"
:channelIcon="
video.channelThumbnail.channelThumbnailWithLinkRenderer.thumbnail
.thumbnails[0].url
"
:titles="video.headline.runs"
:bottomText="parseBottom(video)"
>
2022-04-23 05:22:18 +00:00
</base-video-renderer>
</template>
<script>
2022-04-23 05:23:55 +00:00
import baseVideoRenderer from "~/components/UtilRenderers/baseVideoRenderer.vue";
export default {
props: ["video"],
2022-04-23 05:22:18 +00:00
components: {
baseVideoRenderer,
},
2022-04-23 05:53:24 +00:00
computed: {
thumbnailOverlayText() {
this.video.thumbnailOverlays.forEach((thumbnail) => {
if (thumbnail.thumbnailOverlayTimeStatusRenderer) {
return thumbnail.thumbnailOverlayTimeStatusRenderer.text.runs[0].text;
}
});
return "";
2022-04-23 05:53:24 +00:00
},
thumbnailOverlayStyle() {
this.video.thumbnailOverlays.forEach((thumbnail) => {
if (thumbnail.thumbnailOverlayTimeStatusRenderer) {
return thumbnail.thumbnailOverlayTimeStatusRenderer.style;
}
});
return "DEFAULT";
2022-04-23 05:53:24 +00:00
},
},
methods: {
parseBottom(video) {
const bottomText = [
video.shortBylineText?.runs[0].text,
video.shortViewCountText?.runs[0].text,
];
if (video.publishedTimeText?.runs[0].text)
bottomText.push(video.publishedTimeText?.runs[0].text);
return bottomText.join(" · ");
},
},
};
</script>