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

108 lines
2.6 KiB
Vue
Raw Normal View History

2022-05-19 19:14:17 +00:00
<template>
<v-btn
2022-05-19 19:14:17 +00:00
v-ripple
text
class="background d-flex flex-row overflow-hidden mb-4 mx-7 mainCard px-0"
to="/playlist"
2022-05-21 02:01:39 +00:00
style="height: 6rem !important"
2022-05-19 19:14:17 +00:00
:class="
$store.state.tweaks.roundThumb && $store.state.tweaks.roundTweak > 0
? $vuetify.theme.dark
? 'lighten-1'
: 'darken-1'
: ''
"
:style="{
borderRadius: $store.state.tweaks.roundThumb
2022-07-28 21:27:14 +00:00
? `${$store.state.tweaks.roundTweak / 3}rem`
2022-05-19 19:14:17 +00:00
: '0',
}"
@click.native="clickHandler"
2022-05-19 19:14:17 +00:00
>
<v-img
contain
:src="thumbnail"
2022-05-19 19:14:17 +00:00
class="background"
style="position: relative; max-width: 8rem !important"
2022-05-21 02:01:39 +00:00
:class="$vuetify.theme.dark ? 'lighten-3' : 'darken-3'"
2022-05-19 19:14:17 +00:00
:style="{
borderRadius: $store.state.tweaks.roundThumb
2022-07-28 21:27:14 +00:00
? `${$store.state.tweaks.roundTweak / 3}rem`
2022-05-19 19:14:17 +00:00
: '0',
}"
>
<div
2022-07-06 04:07:12 +00:00
class="d-flex flex-column justify-center align-center background-opaque"
style="position: absolute; top: 0; right: 0; width: 50%; height: 100%"
2022-05-19 19:14:17 +00:00
>
<div>{{ playlist.videos.length }}</div>
2022-05-19 19:14:17 +00:00
<v-icon>mdi-playlist-play</v-icon>
</div>
</v-img>
<div v-emoji class="pa-4 text-left" style="font-size: 0.75rem !important">
<b>{{ playlist.name }}</b>
2022-05-19 19:14:17 +00:00
<div
2022-05-21 02:01:39 +00:00
class="background--text caption mt-2"
2022-05-19 19:14:17 +00:00
:class="$vuetify.theme.dark ? 'text--lighten-4' : 'text--darken-4'"
>
Bottom Text <br />
{{ playlist.videos.length }} videos
2022-05-19 19:14:17 +00:00
</div>
</div>
<v-spacer></v-spacer>
<div class="d-flex flex-column">
<!-- <v-btn
2022-05-19 19:14:17 +00:00
text
tile
elevation="0"
2022-05-21 02:01:39 +00:00
class="flex-grow-1"
style="width: 2rem !important"
2022-05-19 19:14:17 +00:00
>
<v-icon>mdi-share-outline</v-icon>
2022-05-19 19:14:17 +00:00
</v-btn>
<v-btn
text
tile
elevation="0"
2022-05-21 02:01:39 +00:00
class="flex-grow-1"
style="width: 2rem !important"
2022-05-19 19:14:17 +00:00
>
<v-icon>mdi-playlist-plus</v-icon>
</v-btn> -->
2022-05-19 19:14:17 +00:00
</div>
</v-btn>
2022-05-19 19:14:17 +00:00
</template>
<script>
export default {
props: {
playlist: { type: Object, required: true },
},
computed: {
thumbnail() {
try {
const videoId =
this.playlist.videos.length === 0 ? "" : this.playlist.videos[0].id;
return `https://img.youtube.com/vi/${videoId}/hqdefault.jpg`;
} catch (e) {
alert(e.message);
return `https://img.youtube.com/vi//hqdefault.jpg`;
}
},
},
methods: {
clickHandler() {
this.$emit("click");
},
},
};
</script>
<style scoped>
.mainCard {
text-transform: none !important;
letter-spacing: normal !important;
}
</style>