TASKS-1823 WebManager module
This commit is contained in:
@@ -0,0 +1,38 @@
|
||||
import type { Metadata } from 'next';
|
||||
import { getTranslations } from 'next-intl/server';
|
||||
import { resolvePreviewRenderData } from '#web-runtime/api/render-data';
|
||||
import PageRenderer from '#web-runtime/renderer';
|
||||
|
||||
export const metadata: Metadata = {
|
||||
title: 'Preview',
|
||||
robots: { index: false, follow: false }
|
||||
};
|
||||
|
||||
export const dynamic = 'force-dynamic';
|
||||
|
||||
interface PreviewRouteProps {
|
||||
searchParams: Promise<{ token?: string }>;
|
||||
}
|
||||
|
||||
async function PreviewUnavailable() {
|
||||
const t = await getTranslations('Pages.PreviewPage');
|
||||
|
||||
return (
|
||||
<main className="flex min-h-dvh flex-col items-center justify-center gap-3 px-6 text-center">
|
||||
<h1 className="text-2xl font-semibold">{t('title')}</h1>
|
||||
<p className="max-w-md text-sm opacity-70">{t('description')}</p>
|
||||
</main>
|
||||
);
|
||||
}
|
||||
|
||||
export default async function PreviewPage({ searchParams }: PreviewRouteProps) {
|
||||
const { token } = await searchParams;
|
||||
|
||||
const data = token ? await resolvePreviewRenderData(token) : null;
|
||||
|
||||
if (!data) {
|
||||
return <PreviewUnavailable />;
|
||||
}
|
||||
|
||||
return <PageRenderer data={data} />;
|
||||
}
|
||||
Reference in New Issue
Block a user