<template>
	<div class="actor">
		<div class="actor-header">
			<h2 class="header-name">
				<span v-if="actor.entity">{{ actor.name }} ({{ actor.entity.name }})</span>
				<span v-else>{{ actor.name }}</span>

				<Gender
					:gender="actor.gender"
					class="header-gender"
				/>
			</h2>

			<li
				v-if="actor.aliases?.length"
				class="bio-item"
			>
				<dfn class="bio-label">Also known as</dfn>
				<span class="bio-value">
					<span
						v-for="alias in actor.aliases"
						:key="`alias-${alias.id}`"
						class="alias"
					>{{ alias.name }}</span>
				</span>
			</li>

			<!--
			<Social
				v-if="actor.social && actor.social.length > 0"
				:actor="actor"
				class="header-social"
			/>

			<StashButton
				:stashed-by="stashedBy"
				class="actor-stash light"
				@stash="(stash) => stashActor(stash)"
				@unstash="(stash) => unstashActor(stash)"
			/>
			-->
		</div>

		<div class="content">
			<Bio :actor="actor" />

			<Scenes />
		</div>
	</div>
</template>

<script setup>
import { inject } from 'vue';

import Bio from '#/components/actors/bio.vue';
import Gender from '#/components/actors/gender.vue';
import Scenes from '#/components/scenes/scenes.vue';

const pageContext = inject('pageContext');
const { pageProps } = pageContext;
const { actor } = pageProps;
</script>

<style scoped>
.actor {
	display: flex;
	flex-direction: column;
	flex-grow: 1;
	overflow: hidden;
}

.actor-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    color: var(--highlight-strong-30);
    background: var(--grey-dark-40);
}

.header-name {
    padding: .5rem 1rem;
    margin: 0;
    display: inline-flex;
    justify-content: space-between;
    flex-shrink: 0;
}

.header-gender {
    display: inline-block;
    margin: 0 0 0 .5rem;
    transform: translate(0, .125rem);
}

.header-social {
    overflow: hidden;
    white-space: nowrap;
    margin: 0 1rem 0 0;
}

.content {
	display: flex;
	flex-direction: column;
	flex-grow: 1;
	overflow-y: auto;
}
</style>
