mirror of
https://gitea.tendokyu.moe/sk1982/actaeon.git
synced 2026-04-26 07:47:06 -05:00
27 lines
1.1 KiB
TypeScript
27 lines
1.1 KiB
TypeScript
import { getUser } from '@/actions/auth';
|
|
import { getArcadeCabs, getArcadeInviteLinks, getArcades, getArcadeUsers } from '@/data/arcade';
|
|
import { notFound } from 'next/navigation';
|
|
import { ArcadeDetail } from './arcade';
|
|
import { PrivateVisibilityError } from '@/components/private-visibility-error';
|
|
|
|
export const dynamic = 'force-dynamic';
|
|
|
|
export default async function ArcadeDetailPage({ params }: { params: { arcadeId: string }}) {
|
|
const user = await getUser();
|
|
const arcade = (await getArcades({ user, uuids: [params.arcadeId], includeUnlisted: true }))[0];
|
|
|
|
if (!arcade)
|
|
return notFound();
|
|
|
|
if (!arcade.visible)
|
|
return <PrivateVisibilityError />;
|
|
|
|
const [users, cabs, links] = await Promise.all([
|
|
getArcadeUsers({ arcade: arcade.id, permissions: arcade.permissions, user }),
|
|
getArcadeCabs({ arcade: arcade.id, permissions: arcade.permissions, user }).then(d => structuredClone(d)),
|
|
getArcadeInviteLinks({ arcade: arcade.id, permissions: arcade.permissions, user }).then(d => structuredClone(d))
|
|
]);
|
|
|
|
return (<ArcadeDetail users={users} arcade={arcade} cabs={cabs} links={links} />)
|
|
};
|