<template> <div v-if="actor" class="actor" > <router-link :to="{ name: 'actor', params: { actorSlug: actor.slug } }" class="link" > <span v-tooltip.top="actor.name" class="name" >{{ actor.name }}</span> <div class="avatar-container"> <img v-if="actor.avatar" :src="`/media/${actor.avatar.thumbnail || actor.avatar}`" class="avatar" > <span v-else class="avatar" ><img :src="`/img/avatar_${actor.gender || 'female'}.png`" class="avatar-fallback" ></span> <span class="details" > <span class="age"> <span v-if="actor.age" v-tooltip="`Born on ${formatDate(actor.birthdate, 'MMMM D, YYYY')}`" class="age-now" >{{ actor.age }}</span> <span v-if="actor.ageThen && actor.ageThen < actor.age" v-tooltip="`${actor.ageThen} years old on release date`" class="age-then" >{{ actor.ageThen }}</span> </span> <Gender :gender="actor.gender" /> <span v-if="actor.origin" v-tooltip="`Born in ${actor.origin.country.alias || actor.origin.country.name}`" class="country" > {{ actor.origin.country.alpha2 }} <img class="flag" :src="`/img/flags/${actor.origin.country.alpha2.toLowerCase()}.png`" > </span> <span v-else class="country" /> </span> </div> </router-link> </div> </template> <script> import Gender from '../actors/gender.vue'; export default { components: { Gender, }, props: { actor: { type: Object, default: null, }, }, }; </script> <style lang="scss" scoped> @import 'theme'; .actor { width: 100%; background: $background; display: inline-block; margin: 0 .5rem .5rem 0; box-shadow: 0 0 3px $shadow-weak; } .link { color: $text; text-decoration: none; &:hover { color: $primary; } } .avatar-container { position: relative; } .avatar { color: $shadow-weak; background: $shadow-hint; height: 13rem; width: 100%; display: flex; align-items: center; justify-content: center; object-fit: cover; object-position: 50% 0; } .avatar-fallback { max-height: 75%; max-width: 80%; opacity: .1; } .details { background: $shadow; color: $text-contrast; width: 100%; height: 1.75rem; display: flex; align-items: center; box-sizing: border-box; padding: .5rem; position: absolute; bottom: 0; font-size: .8rem; font-weight: bold; } .age, .country, .gender { flex: 1; } .gender { text-align: center; } .country { text-align: right; } .age-then { color: $highlight; } .name { display: block; padding: .5rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; text-align: center; font-weight: bold; } </style>