mirror of
https://github.com/hanzoai/gallery.git
synced 2026-11-02 23:51:31 +00:00
- 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
44 lines
1.4 KiB
TypeScript
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}
|
|
/>
|
|
);
|
|
}
|