Rocky_Mountain_Vending/app/warehouses/page.tsx

80 lines
2.2 KiB
TypeScript

import { notFound } from "next/navigation"
import { loadImageMapping } from "@/lib/wordpress-content"
import { generateRegistryMetadata, generateRegistryStructuredData } from "@/lib/seo"
import { getPageBySlug } from "@/lib/wordpress-data-loader"
import { cleanWordPressContent } from "@/lib/clean-wordPress-content"
import { WhoWeServePage } from "@/components/who-we-serve-page"
import type { Metadata } from "next"
const WORDPRESS_SLUG =
"streamlining-snack-and-beverage-access-in-warehouse-environments"
export async function generateMetadata(): Promise<Metadata> {
const page = getPageBySlug(WORDPRESS_SLUG)
if (!page) {
return {
title: "Page Not Found | Rocky Mountain Vending",
}
}
return generateRegistryMetadata("warehouses", {
date: page.date,
modified: page.modified,
image: page.images?.[0]?.localPath,
})
}
export default async function WarehousesPage() {
try {
const page = getPageBySlug(WORDPRESS_SLUG)
if (!page) {
notFound()
}
// Load image mapping (optional, won't break if it fails)
let imageMapping: any = {}
try {
imageMapping = loadImageMapping()
} catch (e) {
imageMapping = {}
}
// Clean and render WordPress content as styled React components
const content = page.content ? (
<div className="max-w-none">
{cleanWordPressContent(String(page.content), {
imageMapping,
pageTitle: page.title,
})}
</div>
) : (
<p className="text-muted-foreground">No content available.</p>
)
const structuredData = generateRegistryStructuredData("warehouses", {
datePublished: page.date,
dateModified: page.modified || page.date,
})
return (
<>
<script
type="application/ld+json"
dangerouslySetInnerHTML={{ __html: JSON.stringify(structuredData) }}
/>
<WhoWeServePage
title={page.title || "Warehouse Vending Solutions"}
description={page.seoDescription || page.excerpt || undefined}
content={content}
/>
</>
)
} catch (error) {
if (process.env.NODE_ENV === "development") {
console.error("Error rendering Warehouses page:", error)
}
notFound()
}
}