--- import { getMenu, getSiteSettings } from "emdash"; import { EmDashHead } from "emdash/ui"; import { createPublicPageContext } from "emdash/page"; import { Font } from "astro:assets"; import "../styles/tokens.css"; import "../styles/theme.css"; interface Props { title?: string; description?: string; image?: string; } const { title, description, image } = Astro.props; const settings = await getSiteSettings(); const siteTitle = settings?.title || "Acme"; const fullTitle = title ? `${title} — ${siteTitle}` : siteTitle; const siteDescription = settings?.tagline || "Build products people actually want"; const siteLogo = (settings?.logo as any)?.url ? settings.logo as { mediaId: string; alt?: string; url: string } : null; const [menu, footerProduct, footerCompany, footerSupport] = await Promise.all([ getMenu("primary"), getMenu("footer_product"), getMenu("footer_company"), getMenu("footer_support"), ]); const footerColumns = [ { heading: "Product", menu: footerProduct }, { heading: "Company", menu: footerCompany }, { heading: "Support", menu: footerSupport }, ].filter((col) => col.menu && col.menu.items.length > 0); const pageCtx = createPublicPageContext({ Astro, kind: "custom", pageType: "website", title: fullTitle, pageTitle: title ?? siteTitle, description: description || siteDescription, canonical: Astro.url.href, image, seo: { ogImage: image }, siteName: siteTitle, }); --- {fullTitle}