Files
topsysops-app/public-site/app/faq/page.jsx
T
ogrechkoandClaude Sonnet 5 130c5382cd Initial commit: TopSysOps site + admin panel
Multi-page public site (Next.js), Node/Express backend with Postgres,
and Vite admin/account app, restructured from a single-page layout
into dedicated service, promotions, cases, about, FAQ, and blog pages
for SEO.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_013otXCiTZsxdZ4SJKZ9wUky
2026-08-25 23:12:16 +03:00

39 lines
1.2 KiB
React

import Header from '../../components/Header.jsx';
import Footer from '../../components/Footer.jsx';
import Faq from '../../components/sections/Faq.jsx';
import { serverApi } from '../../lib/serverApi.js';
export const metadata = {
title: 'Частые вопросы об IT-аутсорсинге и услугах',
description: 'Ответы на частые вопросы об IT-аутсорсинге, техподдержке, оплате услуг и конфиденциальности данных TopSysOps.',
};
export default async function FaqPage() {
const faqs = await serverApi.getFaqs();
const faqSchema =
faqs.length > 0
? {
'@context': 'https://schema.org',
'@type': 'FAQPage',
mainEntity: faqs.map((f) => ({
'@type': 'Question',
name: f.question,
acceptedAnswer: { '@type': 'Answer', text: f.answer },
})),
}
: null;
return (
<div>
{faqSchema && (
// eslint-disable-next-line react/no-danger
<script type="application/ld+json" dangerouslySetInnerHTML={{ __html: JSON.stringify(faqSchema) }} />
)}
<Header />
<Faq faqs={faqs} />
<Footer />
</div>
);
}