import Link from 'next/link'; import { notFound } from 'next/navigation'; import { ArrowLeft, ArrowRight, CheckCircle2 } from 'lucide-react'; import Header from '../../../components/Header.jsx'; import Footer from '../../../components/Footer.jsx'; import Reveal from '../../../components/Reveal.jsx'; import { ServicePriceList } from '../../../components/sections/Services.jsx'; import { getIcon } from '../../../lib/icons.js'; import { getServiceLandingCopy } from '../../../lib/serviceLandingCopy.js'; import { serverApi } from '../../../lib/serverApi.js'; async function findCategory(slug) { const services = await serverApi.getServices(); return services.find((c) => c.slug === slug) || null; } export async function generateMetadata({ params }) { const category = await findCategory(params.slug); if (!category) return { title: 'Услуга не найдена' }; const copy = getServiceLandingCopy(category); return { title: copy.metaTitle, description: copy.metaDescription }; } export default async function ServiceLandingPage({ params }) { const category = await findCategory(params.slug); if (!category) notFound(); const copy = getServiceLandingCopy(category); const Icon = getIcon(category.icon); const serviceSchema = { '@context': 'https://schema.org', '@type': 'Service', name: copy.h1, description: copy.metaDescription, provider: { '@type': 'Organization', name: 'TopSysOps' }, areaServed: 'RU', }; return (
{/* eslint-disable-next-line react/no-danger */}