feat(pages): complete reusable page block editor controls

This commit is contained in:
2026-02-12 22:53:00 +01:00
parent c6ebf3759a
commit 987843d96b
3 changed files with 197 additions and 61 deletions

View File

@@ -12,6 +12,16 @@ type PublicPageViewProps = {
page: PageEntity
}
function resolveFormLink(formKey: string): { href: string; label: string } {
const normalized = formKey.trim().toLowerCase()
if (normalized === "commission" || normalized === "commissions") {
return { href: "/commissions", label: "Open commission form" }
}
return { href: `/#form-${normalized || "contact"}`, label: "Open contact form" }
}
export function PublicPageView({ page }: PublicPageViewProps) {
const blocks = (() => {
try {
@@ -106,6 +116,7 @@ export function PublicPageView({ page }: PublicPageViewProps) {
}
if (block.type === "form") {
const formLink = resolveFormLink(block.formKey)
return (
<section key={block.id} className="space-y-2 rounded border border-neutral-200 p-4">
<h3 className="text-lg font-medium">{block.title || "Form block"}</h3>
@@ -113,6 +124,12 @@ export function PublicPageView({ page }: PublicPageViewProps) {
{block.description || "Form integration pending."}
</p>
<p className="text-xs text-neutral-500">formKey: {block.formKey}</p>
<a
href={formLink.href}
className="inline-flex rounded border border-neutral-300 px-3 py-1.5 text-sm"
>
{formLink.label}
</a>
</section>
)
}