components/schedule/Talk.vue (53 lines of code) (raw):
<template>
<div class="talk">
<p class="talk__title">{{ maintainer.talkTitle }}</p>
<p class="talk__speaker">{{ maintainer.profile.name }}</p>
</div>
</template>
<script>
export default {
props: {
speakerHandler: {
type: String,
required: true,
},
},
data() {
return {
maintainer: {
talkTitle: 'PR incoming',
profile: {
name: 'PR incoming!',
},
},
}
},
async fetch() {
if (this.speakerHandler !== '') {
const maintainer = await this.$content(
`2021/shared/maintainers/${this.speakerHandler}`
).fetch()
this.maintainer = maintainer
}
},
}
</script>
<style lang="scss" scoped>
.talk {
&__title {
@include mobileToDesktopFontSize(var(--fs-small), var(--fs-medium));
margin: 0;
font-family: var(--ff-secondary);
}
&__speaker {
@include mobileToDesktopFontSize(var(--fs-small), var(--fs-default));
margin-top: 8px;
margin-bottom: 24px;
font-weight: var(--fw-regular);
font-family: var(--ff-default);
@media screen and (min-width: $screen-sm) {
margin-bottom: 40px;
}
}
}
</style>