Files
zeekay 37a037a98d feat: Convert to fully static site with pre-generated routes
- Remove API routes (not needed for static export)
- Remove old [id] dynamic route
- Add generateStaticParams() to templates/[slug] route
- Enable output: 'export' for static site generation
- Pre-generate all 47 pages at build time (40 templates + 7 static pages)
- Ready for GitHub Pages deployment
2025-10-28 19:57:11 -07:00

44 lines
1.4 KiB
TypeScript

import { templates } from '../../templates-data';
import { notFound } from 'next/navigation';
import { getTemplateVariants, getUniqueTemplates } from '../../lib/template-utils';
import { TemplatePageClient } from './TemplatePageClient';
interface PageProps {
params: Promise<{ slug: string }>;
}
// Generate static params for all templates at build time
export async function generateStaticParams() {
const uniqueTemplates = getUniqueTemplates(templates);
return uniqueTemplates.map((template) => ({
slug: template.slug,
}));
}
export default async function TemplatePage({ params }: PageProps) {
const { slug } = await params;
const allVariants = getTemplateVariants(templates, slug);
if (allVariants.length === 0) {
notFound();
}
// Get unique templates for navigation
const uniqueTemplates = getUniqueTemplates(templates);
const currentIndex = uniqueTemplates.findIndex(t => t.slug === slug);
const prevTemplate = currentIndex > 0 ? uniqueTemplates[currentIndex - 1] : null;
const nextTemplate = currentIndex < uniqueTemplates.length - 1 ? uniqueTemplates[currentIndex + 1] : null;
return (
<TemplatePageClient
variants={allVariants}
prevTemplate={prevTemplate}
nextTemplate={nextTemplate}
currentIndex={currentIndex + 1}
totalTemplates={uniqueTemplates.length}
allTemplates={uniqueTemplates}
/>
);
}