<template>
    <div class="tile">
        <span class="banner">
            <span class="details">
                <a
                    :href="`/site/${release.site.slug}`"
                    :title="release.network.name"
                    target="_blank"
                    rel="noopener noreferrer"
                    class="site site-link"
                >{{ release.site.name }}</a>

                <a
                    v-if="release.date"
                    :href="release.url"
                    target="_blank"
                    rel="noopener noreferrer"
                    class="date"
                >{{ formatDate(release.date, 'MMM D, YYYY') }}</a>

                <a
                    v-else
                    :href="release.url"
                    title="Scene date N/A, showing date added"
                    target="_blank"
                    rel="noopener noreferrer"
                    class="date"
                >{{ `(${formatDate(release.dateAdded, 'MMM D, YYYY')})` }}`</a>
            </span>

            <a
                :href="`/scene/${release.id}`"
                class="link"
            >
                <img
                    v-if="release.poster"
                    :src="`/media/${release.poster.path}`"
                    :alt="release.title"
                    class="thumbnail"
                >

                <img
                    v-else-if="release.photos.length > 0"
                    :src="`/media/${release.photos[0].path}`"
                    :alt="release.title"
                    class="thumbnail"
                >

                <div
                    v-else
                    :title="release.title"
                    class="thumbnail"
                >No thumbnail available</div>
            </a>
        </span>

        <div class="info">
            <a
                :href="`/scene/${release.id}`"
                class="row link"
            >
                <h3
                    :title="release.title"
                    class="title"
                >{{ release.title }}</h3>
            </a>

            <span class="row">
                <ul class="actors nolist">
                    <li
                        v-for="actor in release.actors"
                        :key="actor.id"
                        class="actor"
                    >
                        <a
                            :href="`/actor/${actor.slug}`"
                            class="actor-link"
                        >{{ actor.name }}</a>
                    </li>
                </ul>
            </span>

            <span
                :title="release.tags.map(tag => tag.name).join(', ')"
                class="row"
            >
                <ul class="tags nolist">
                    <li
                        v-for="tag in release.tags"
                        :key="`tag-${tag.slug}`"
                        class="tag"
                    >
                        <a
                            :href="`/tag/${tag.slug}`"
                            target="_blank"
                            rel="noopener noreferrer"
                            class="tag-link"
                        >{{ tag.name }}</a>
                    </li>
                </ul>
            </span>
        </div>
    </div>
</template>

<script>
export default {
    props: {
        release: {
            type: Object,
            default: null,
        },
    },
};
</script>

<style lang="scss" scoped>
@import 'theme';

.tile {
    display: flex;
    flex-direction: column;
    box-sizing: border-box;
    padding: 0 0 .5rem 0;
    border-radius: .25rem;
    overflow: hidden;
    box-shadow: 0 0 3px rgba(0, 0, 0, .25);
    height: 100%;
}

.banner {
    position: relative;
    margin: 0 0 .5rem 0;
}

.thumbnail {
    width: 100%;
    height: 12rem;
    display: flex;
    justify-content: center;
    align-items: center;
    object-fit: cover;
    background-position: center;
    background-size: cover;
    background-color: $shadow-hint;
    color: $shadow;
    text-shadow: 1px 1px 0 $highlight;
}

.row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    box-sizing: border-box;
    padding: 0 .5rem;
    margin: 0 0 .25rem 0;
}

.details {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: space-between;
    position: absolute;
}

.site,
.date {
    color: #fff;
    background: rgba(0, 0, 0, .5);
    font-size: .8rem;
    padding: .25rem;
    text-decoration: none;
}

.site {
    border-radius: 0 0 .25rem 0;
    font-weight: bold;
}

.date {
    border-radius: 0 0 0 .25rem;
}

.info {
    flex-grow: 1;
}

.link {
    text-decoration: none;
}

.title {
    color: $text;
    margin: 0;
    font-size: 1rem;
    word-wrap: break-word;
    overflow: hidden;
    max-height: 3rem;
    line-height: 1.5rem;
}

.network {
    color: #555;
    margin: 0 .25rem 0 0;
    font-size: .8rem;
}

.actors {
    word-wrap: break-word;
    overflow: hidden;
    max-height: 2.5rem;
    line-height: 1.25rem;
}

.tags {
    word-wrap: break-word;
    overflow: hidden;
    max-height: 2.5rem;
    line-height: 1.25rem;
}

.actor,
.tag {
    margin: 0 .25rem 0 0;
}

.actor {
    font-size: .9rem;
}

.tag {
    font-size: .75rem;
}

.actor:not(:last-of-type)::after,
.tag:not(:last-child):after {
    content: ",";
}

.actor-link,
.tag-link {
    text-decoration: none;

    &:hover {
        color: $primary;
    }
}

.actor-link {
    color: $link;
}

.tag-link {
    color: $shadow-strong;
}
</style>
