import { render } from 'vike/abort'; /* eslint-disable-line import/extensions */

import { fetchUser } from '#/src/users.js';
import { fetchAlerts } from '#/src/alerts.js';

export async function onBeforeRender(pageContext) {
	const [profile, alerts] = await Promise.all([
		fetchUser(pageContext.routeParams.username, {}, pageContext.user),
		pageContext.routeParams.username === pageContext.user?.username
			? fetchAlerts(pageContext.user)
			: [],
	]);

	if (!profile) {
		throw render(404, `Cannot find user '${pageContext.routeParams.username}'.`);
	}

	return {
		pageContext: {
			title: profile.username,
			pageProps: {
				profile, // differentiate from authed 'user'
				alerts,
			},
		},
	};
}