import '../../clean.css'; import { createT, isLocale, LOCALES, pickMessages, type Locale } from '@barev/i18n'; import { Logo } from '@barev/ui'; import type { Metadata } from 'next'; import { notFound } from 'next/navigation'; import { CleanForm } from '../../../components/clean'; import { FooterContacts, LegalLine } from '../../../components/seo'; import { LegalLinks } from '../../../components/legal'; import { BotLink, BotLinkProvider, LangMenu, LangSwitch } from '../../../components/client'; import { getCleaning } from '../../../lib/data'; export const revalidate = 300; export const dynamicParams = false; export function generateStaticParams() { return LOCALES.map((locale) => ({ locale })); } export async function generateMetadata({ params }: { params: Promise<{ locale: string }> }): Promise { const { locale } = await params; if (!isLocale(locale)) return {}; const t = createT(locale); return { title: t('landing.clean.meta.title'), description: t('landing.clean.meta.description'), alternates: { canonical: `/${locale}/clean`, languages: Object.fromEntries([...LOCALES.map((l) => [l, `/${l}/clean`]), ['x-default', '/ru/clean']]), }, openGraph: { title: t('landing.clean.meta.title'), description: t('landing.clean.meta.description'), locale, type: 'website', siteName: 'Barev Club' }, }; } const ZONES = ['kitchen', 'bathroom', 'rooms'] as const; /** barevclub.com/clean — заказ уборки с сайта по модели qlean.ru */ export default async function CleanPage({ params }: { params: Promise<{ locale: string }> }) { const { locale: raw } = await params; if (!isLocale(raw)) notFound(); const locale: Locale = raw; const t = createT(locale); const config = await getCleaning(); const messages = pickMessages(locale, ['landing.clean.', 'params.cleaning.', 'extras.', 'districts.', 'errors.', 'common.']); return (
{t('landing.openTelegram')} Telegram

{t('landing.clean.includedTitle')}

{ZONES.map((z) => (

{t(`landing.clean.zone.${z}`)}

    {t(`landing.clean.inc.${z}`) .split('\n') .map((line) => (
  • {line}
  • ))}
))}

{t('landing.clean.general')}

{t('landing.clean.renovation')}

{t('landing.clean.howTitle')}

    {([1, 2, 3] as const).map((n) => (
  1. {n}
    {t(`landing.clean.how${n}`)}
    {t(`landing.clean.how${n}Sub`)}
  2. ))}
); }