import type { Metadata } from "next"; import { notFound } from "next/navigation"; import { CheckCircle2 } from "lucide-react"; import { renderContent } from "@/lib/content-render"; import { getServiceBySlug, getSiteSettings, listProjects } from "@/lib/data"; import { buildMetadata } from "@/lib/seo"; import { ProjectsGrid } from "@/components/projects-grid"; import { SectionTitle } from "@/components/section-title"; import { FaqList } from "@/components/faq-list"; import { ServiceHero } from "@/components/service-hero"; import { ServiceSidebar } from "@/components/service-sidebar"; import { ServiceLd, FaqLd } from "@/components/json-ld"; import type { FaqItem } from "@/lib/types"; export async function generateMetadata({ params, }: { params: Promise<{ slug: string }>; }): Promise { const { slug } = await params; const service = await getServiceBySlug(slug); if (!service) return { title: "Hizmet bulunamadı" }; return buildMetadata(`/hizmetler/${slug}`, { title: service.title, description: service.description.slice(0, 160), }); } function parseFaq(items?: string[] | null): FaqItem[] { if (!items) return []; const out: FaqItem[] = []; for (const raw of items) { try { const obj = JSON.parse(raw) as Partial; if (obj.q && obj.a) out.push({ q: obj.q, a: obj.a }); } catch { const [q, a] = raw.split("|||").map((s) => s.trim()); if (q && a) out.push({ q, a }); } } return out; } export default async function ServiceDetailPage({ params, }: { params: Promise<{ slug: string }>; }) { const { slug } = await params; const service = await getServiceBySlug(slug); if (!service) notFound(); const [relatedProjects, settings] = await Promise.all([ listProjects({ serviceSlug: slug, limit: 6 }), getSiteSettings(), ]); const faqItems = parseFaq(service.faq); const html = renderContent(service.content); return ( <>
{service.features && service.features.length > 0 && (

Bu hizmet kapsamında

    {service.features.map((f) => (
  • {f}
  • ))}
)} {html && (
)} {faqItems.length > 0 && (

Sıkça sorulan sorular

)}
{relatedProjects.length > 0 && (
)} ); }