traxxx-web/pages/users/@username/+onBeforeRender.js

32 lines
846 B
JavaScript
Raw Normal View History

2024-02-29 05:00:12 +00:00
import { render } from 'vike/abort'; /* eslint-disable-line import/extensions */
2024-02-29 04:08:54 +00:00
import { fetchUser } from '#/src/users.js';
2024-08-26 04:15:22 +00:00
import { fetchUserStashes } from '#/src/stashes.js';
import { fetchAlerts } from '#/src/alerts.js';
2024-02-29 04:08:54 +00:00
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)
: [],
]);
2024-02-29 04:08:54 +00:00
2024-02-29 05:00:12 +00:00
if (!profile) {
throw render(404, `Cannot find user '${pageContext.routeParams.username}'.`);
}
2024-08-26 04:15:22 +00:00
const stashes = await fetchUserStashes(profile.id, pageContext.user);
2024-02-29 04:08:54 +00:00
return {
pageContext: {
title: profile.username,
pageProps: {
profile, // differentiate from authed 'user'
2024-08-26 04:15:22 +00:00
stashes,
alerts,
2024-02-29 04:08:54 +00:00
},
},
};
}