import React from 'react'; import Link from 'next/link'; import { redirect } from 'next/navigation'; import { ChevronLeft } from 'lucide-react'; import { getRequiredServerComponentSession } from '@documenso/lib/next-auth/get-server-component-session'; import { getFieldsForTemplate } from '@documenso/lib/server-only/field/get-fields-for-template'; import { getRecipientsForTemplate } from '@documenso/lib/server-only/recipient/get-recipients-for-template'; import { getTemplateById } from '@documenso/lib/server-only/template/get-template-by-id'; import { TemplateType } from '~/components/formatter/template-type'; import { EditTemplateForm } from './edit-template'; export type TemplatePageProps = { params: { id: string; }; }; export default async function TemplatePage({ params }: TemplatePageProps) { const { id } = params; const templateId = Number(id); if (!templateId || Number.isNaN(templateId)) { redirect('/documents'); } const { user } = await getRequiredServerComponentSession(); const template = await getTemplateById({ id: templateId, userId: user.id, }).catch(() => null); if (!template || !template.templateDocumentData) { redirect('/documents'); } const { templateDocumentData } = template; const [templateRecipients, templateFields] = await Promise.all([ getRecipientsForTemplate({ templateId, userId: user.id, }), getFieldsForTemplate({ templateId, userId: user.id, }), ]); return (