import React from 'react'; import Link from 'next/link'; import { redirect } from 'next/navigation'; import { ChevronLeft } from 'lucide-react'; import { isUserEnterprise } from '@documenso/ee/server-only/util/is-document-enterprise'; import { getRequiredServerComponentSession } from '@documenso/lib/next-auth/get-server-component-session'; import { getTemplateWithDetailsById } from '@documenso/lib/server-only/template/get-template-with-details-by-id'; import { formatTemplatesPath } from '@documenso/lib/utils/teams'; import type { Team } from '@documenso/prisma/client'; import { TemplateType } from '~/components/formatter/template-type'; import { TemplateDirectLinkBadge } from '../template-direct-link-badge'; import { EditTemplateForm } from './edit-template'; import { TemplateDirectLinkDialogWrapper } from './template-direct-link-dialog-wrapper'; export type TemplatePageViewProps = { params: { id: string; }; team?: Team; }; export const TemplatePageView = async ({ params, team }: TemplatePageViewProps) => { const { id } = params; const templateId = Number(id); const templateRootPath = formatTemplatesPath(team?.url); if (!templateId || Number.isNaN(templateId)) { redirect(templateRootPath); } const { user } = await getRequiredServerComponentSession(); const template = await getTemplateWithDetailsById({ id: templateId, userId: user.id, }).catch(() => null); if (!template || !template.templateDocumentData) { redirect(templateRootPath); } const isTemplateEnterprise = await isUserEnterprise({ userId: user.id, teamId: team?.id, }); return (