<template>
	<div
		v-lazy-container
		class="photos"
		:class="{
			avatar: !!actor.avatar,
			empty: actor.photos.length === 0,
			wide: actor.photos.length > 2
		}"
	>
		<a
			v-if="actor.avatar"
			:href="`/media/${actor.avatar.path}`"
			target="_blank"
			rel="noopener noreferrer"
			class="avatar-link photo-link"
		>
			<img
				:data-src="sfw ? `/img/${actor.avatar.sfw.thumbnail}` : `/media/${actor.avatar.thumbnail}`"
				:data-loading="sfw ? `/img/${actor.avatar.sfw.lazy}` : `/media/${actor.avatar.lazy}`"
				:title="actor.avatar.copyright && `© ${actor.avatar.copyright}`"
				class="avatar photo"
			>
		</a>

		<a
			v-for="photo in actor.photos"
			:key="`photo-${photo.id}`"
			:href="`/media/${photo.path}`"
			target="_blank"
			rel="noopener noreferrer"
			class="photo-link"
		>
			<img
				:data-src="sfw ? `/img/${photo.sfw.thumbnail}` : `/media/${photo.thumbnail}`"
				:data-loading="sfw ? `/img/${photo.sfw.lazy}` : `/media/${photo.lazy}`"
				:title="photo.copyright && `© ${photo.copyright}`"
				class="photo"
			>
		</a>
	</div>
</template>

<script>
function sfw() {
	return this.$store.state.ui.sfw;
}

export default {
	props: {
		actor: {
			type: Object,
			default: null,
		},
	},
	computed: {
		sfw,
	},
};
</script>

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

.photos {
	width: 100%;
    display: flex;
	box-sizing: border-box;
	padding: 1rem;
	border-bottom: solid 1px var(--darken-hint);
    font-size: 0;
	overflow-x: scroll;
	scrollbar-width: none;

	&.empty {
		display: none;
	}

    .avatar-link {
        display: none;
    }

	&::-webkit-scrollbar {
		display: none;
	}
}

.photo-link {
	height: 16rem;
	flex-shrink: 0;
	margin: 0 .5rem 0 0;
}

.photo {
    height: 100%;
    box-shadow: 0 0 3px $shadow-weak;
}

@media(max-width: $breakpoint3) {
	.photos {
		&.empty.avatar {
			display: flex;
		}

		.avatar-link {
			display: inline-block;
		}
    }
}
</style>
