+
+export default function FormSection({
+ section,
+ slug,
+}: {
+ section: ClientFormSection
+ slug: string
+}) {
+ const formRef = section.id ? { slug, formId: section.id } : undefined
+
return (
@@ -15,7 +31,7 @@ export default function FormSection({ section }: { section: GoFormSection }) {
disclaimer={section.disclaimer}
successMessage={section.successMessage}
successRedirect={section.successRedirect}
- crm={section.crm}
+ formRef={formRef}
/>
diff --git a/packages/marketing/src/go/sections/SectionRenderer.tsx b/packages/marketing/src/go/sections/SectionRenderer.tsx
index 7fb6b0b5dc6a3..905810be0841d 100644
--- a/packages/marketing/src/go/sections/SectionRenderer.tsx
+++ b/packages/marketing/src/go/sections/SectionRenderer.tsx
@@ -21,10 +21,12 @@ export type CustomSectionRenderers = {
interface SectionRendererProps {
section: GoSection
+ /** Page slug — threaded through so form sections can build a server-resolvable formRef. */
+ slug: string
customRenderers?: CustomSectionRenderers
}
-export default function SectionRenderer({ section, customRenderers }: SectionRendererProps) {
+export default function SectionRenderer({ section, slug, customRenderers }: SectionRendererProps) {
// Check for a custom renderer first
const CustomRenderer = customRenderers?.[section.type] as
| React.ComponentType<{ section: typeof section }>
@@ -45,9 +47,13 @@ export default function SectionRenderer({ section, customRenderers }: SectionRen
case 'three-column':
content =
break
- case 'form':
- content =
+ case 'form': {
+ // Drop CRM config before the section crosses into the client bundle —
+ // the server action re-resolves it from the registry by formRef.
+ const { crm: _crm, ...clientSection } = section
+ content =
break
+ }
case 'feature-grid':
content =
break
diff --git a/packages/marketing/src/go/templates/LeadGenTemplate.tsx b/packages/marketing/src/go/templates/LeadGenTemplate.tsx
index 125676c578b2f..7af08c4186d8b 100644
--- a/packages/marketing/src/go/templates/LeadGenTemplate.tsx
+++ b/packages/marketing/src/go/templates/LeadGenTemplate.tsx
@@ -13,7 +13,12 @@ export default function LeadGenTemplate({
{page.sections?.map((section, i) => (
-
+
))}
)
diff --git a/packages/marketing/src/go/templates/LegalTemplate.tsx b/packages/marketing/src/go/templates/LegalTemplate.tsx
index 66637efc98db3..d0095c3839d89 100644
--- a/packages/marketing/src/go/templates/LegalTemplate.tsx
+++ b/packages/marketing/src/go/templates/LegalTemplate.tsx
@@ -25,7 +25,12 @@ export default function LegalTemplate({
{page.sections?.map((section, i) => (
-
+
))}
)
diff --git a/packages/marketing/src/go/templates/ThankYouTemplate.tsx b/packages/marketing/src/go/templates/ThankYouTemplate.tsx
index 35cbce99583d1..02dc573be5ade 100644
--- a/packages/marketing/src/go/templates/ThankYouTemplate.tsx
+++ b/packages/marketing/src/go/templates/ThankYouTemplate.tsx
@@ -17,7 +17,12 @@ export default function ThankYouTemplate({
{page.sections?.map((section, i) => (
-
+
))}
)
diff --git a/supa-mdx-lint/Rule003Spelling.toml b/supa-mdx-lint/Rule003Spelling.toml
index 69eedcf26613a..09cbdba464052 100644
--- a/supa-mdx-lint/Rule003Spelling.toml
+++ b/supa-mdx-lint/Rule003Spelling.toml
@@ -172,6 +172,7 @@ allow_list = [
"Authn",
"Authy",
"B-tree",
+ "Better Stack",
"Basejump",
"BigQuery",
"Bitbucket",