---
import { BLOG } from '~/config.mjs';

import Layout from '~/layouts/PageLayout.astro';
import SinglePost from '~/components/blog/SinglePost.astro';
import ToBlogLink from '~/components/blog/ToBlogLink.astro';

import { getCanonical, getPermalink, POST_BASE } from '~/utils/permalinks';
import { fetchPosts } from '~/utils/blog';
import { findImage } from '~/utils/images';

export async function getStaticPaths() {
	if (BLOG?.disabled || BLOG?.post?.disabled) return [];
	return (await fetchPosts()).map((post) => ({
		params: {
			slug: post.slug,
			blog: POST_BASE || undefined,
		},
		props: { post },
	}));
}

const { post } = Astro.props;
const url = getCanonical(getPermalink(post.slug, 'post'));

const meta = {
	title: post.title,
	description: post.description,
	canonical: post.canonical || undefined,
	image: await findImage(post.image),
	noindex: BLOG?.post?.noindex,
	ogType: 'article',
};
---

<Layout {meta}>
	<SinglePost post={{ ...post, image: meta.image }} url={url} />
	<ToBlogLink />
</Layout>
