Files
kolaytercih/src/app/bolum/[slug]/page.tsx
bilalgursen 8d26e375ff refactor: katalog feature'ı — sayfalar senkron kompozisyona geçti (Faz 2)
- 8 katalog bileşeni src/features/katalog/components/ altına taşındı;
  katalog-queries.ts (server-only) lib/katalog'un feature kapısı oldu
- /bolumler ve /universiteler'in sayfa içi fetch+inline bileşenleri
  BolumKatalogu/UniversiteKatalogu feature bileşenlerine çıkarıldı
- 6 sayfa async'ten senkron'a: params.then() + sayfada Suspense,
  skeleton'lar feature bileşeninin yanında (BolumIcerikSkeleton vb.)
- generateStaticParams artık *-queries yerine bileşen dosyasının
  helper'larını kullanıyor (bolumStaticSlugs, uniSayfaStaticParams)
- Davranış değişikliği yok; route durumları aynı (◐), 1917 statik sayfa

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-08 01:14:00 +03:00

33 lines
981 B
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import { Suspense } from "react";
import type { Metadata } from "next";
import {
BolumIcerik,
BolumIcerikSkeleton,
bolumSayfaMetadata,
bolumStaticSlugs,
} from "@/features/katalog/components/bolum-icerik";
// Tüm bölümler build sırasında bilinir (veri ancak ingest + deploy ile
// değişir); bilinmeyen slug getBolumBySlug'dan null dönüp notFound()'a düşer.
// (dynamicParams cacheComponents ile uyumsuz olduğundan kullanılamıyor.)
export function generateStaticParams() {
return bolumStaticSlugs().map((slug) => ({ slug }));
}
export async function generateMetadata({
params,
}: PageProps<"/bolum/[slug]">): Promise<Metadata> {
const { slug } = await params;
return bolumSayfaMetadata(slug, 1);
}
export default function BolumPage({ params }: PageProps<"/bolum/[slug]">) {
return (
<Suspense fallback={<BolumIcerikSkeleton />}>
{params.then(({ slug }) => (
<BolumIcerik slug={slug} sayfa={1} />
))}
</Suspense>
);
}