GoPageRenderer.tsx29 lines · main
1import type { GoPage } from '../schemas'
2import type { CustomSectionRenderers } from '../sections/SectionRenderer'
3import LeadGenTemplate from './LeadGenTemplate'
4import LegalTemplate from './LegalTemplate'
5import ThankYouTemplate from './ThankYouTemplate'
6
7interface GoPageRendererProps {
8 page: GoPage
9 customRenderers?: CustomSectionRenderers
10}
11
12function TemplateSwitch({ page, customRenderers }: GoPageRendererProps) {
13 switch (page.template) {
14 case 'lead-gen':
15 return <LeadGenTemplate page={page} customRenderers={customRenderers} />
16 case 'thank-you':
17 return <ThankYouTemplate page={page} customRenderers={customRenderers} />
18 case 'legal':
19 return <LegalTemplate page={page} customRenderers={customRenderers} />
20 default: {
21 const _exhaustive: never = page
22 return null
23 }
24 }
25}
26
27export default function GoPageRenderer({ page, customRenderers }: GoPageRendererProps) {
28 return <TemplateSwitch page={page} customRenderers={customRenderers} />
29}