52 lines
1.0 KiB
Vue
52 lines
1.0 KiB
Vue
<template>
|
|
<div class="campaign">
|
|
<a
|
|
:href="campaign.url"
|
|
target="_blank"
|
|
class="campaign-link"
|
|
>
|
|
<img
|
|
v-if="campaign.banner"
|
|
:src="getBanner(campaign)"
|
|
class="campaign-banner"
|
|
>
|
|
</a>
|
|
</div>
|
|
</template>
|
|
|
|
<script setup>
|
|
const props = defineProps({
|
|
campaign: {
|
|
type: Object,
|
|
default: null,
|
|
},
|
|
});
|
|
|
|
console.log(props.campaign?.banner);
|
|
|
|
function getBanner(campaign) {
|
|
if (campaign.banner.entity.type === 'network' || !campaign.banner.entity.parent) {
|
|
return `/banners/${campaign.banner.entity.slug}/${campaign.banner.id}.${campaign.banner.type || 'jpg'}`;
|
|
}
|
|
|
|
if (campaign.banner.entity.type === 'channel' && campaign.banner.entity.parent?.type === 'network') {
|
|
return `/banners/${campaign.banner.entity.parent.slug}/${campaign.banner.entity.slug}/${campaign.banner.id}.${campaign.banner.type || 'jpg'}`;
|
|
}
|
|
|
|
return null;
|
|
}
|
|
</script>
|
|
|
|
<style scoped>
|
|
.campaign {
|
|
height: 100%;
|
|
display: flex;
|
|
justify-content: center;
|
|
}
|
|
|
|
.campaign-banner {
|
|
max-height: 100%;
|
|
max-width: 100%;
|
|
}
|
|
</style>
|