import '../../variants.css'; import { createT, formatAmd, isLocale, LOCALES, type Locale } from '@barev/i18n'; import { notFound } from 'next/navigation'; import { BotLink, BotLinkProvider } from '../../../components/client'; import { VariantHeader, variantMetadata } from '../../../components/variant'; import { getCatalog } from '../../../lib/data'; export const revalidate = 300; export const dynamicParams = false; export function generateStaticParams() { return LOCALES.map((locale) => ({ locale })); } export function generateMetadata({ params }: { params: Promise<{ locale: string }> }) { return variantMetadata(params, '/land4', 'landing.v4.title'); } /** Текст табло: каждая буква — отдельная перекидная пластинка, при загрузке они один раз «перещёлкиваются» по очереди */ function Flaps({ text, start = 0 }: { text: string; start?: number }) { return ( {Array.from(text).map((ch, i) => ch === ' ' ? ( ); } /** Версия 4 «Табло прилёта»: для тех, кто только прилетел. Услуги клуба — как рейсы на табло, CTA — посадочный талон */ export default async function Land4({ params }: { params: Promise<{ locale: string }> }) { const { locale: raw } = await params; if (!isLocale(raw)) notFound(); const locale: Locale = raw; const t = createT(locale); const amd = (n: number) => formatAmd(locale, n); const catalog = await getCatalog(); const rows = catalog.categories .filter((c) => c.code !== 'PERKS') .flatMap((c) => c.services) .sort((a, b) => Number(b.active) - Number(a.active)); return (

{t('landing.v4.title')}

{t('landing.v4.sub')}

{t('landing.v4.board')} {t('landing.v4.city')} EVN
{rows.map((s, i) => ( ))}
{t('landing.v4.colFlight')} {t('landing.v4.colService')} {t('landing.v4.colPrice')} {t('landing.v4.colStatus')}
BC {String(i + 1).padStart(3, '0')} {s.code === 'cleaning' && s.active ? ( ) : ( )} {s.active ? t('common.from', { price: amd(s.fromPrice) }) : '—'} {s.active ? t('landing.v4.live') : t('landing.v4.soon')}
{/* посадочный талон: корешок отрывается по пунктиру, кнопка — посадка в бота */}
{t('landing.v4.passTitle')}
{t('landing.v4.passenger')}
{t('landing.v4.passengerValue')}
{t('landing.v4.from')}
{t('landing.v4.fromValue')}
{t('landing.v4.to')}
{t('landing.v4.toValue')}
{t('landing.v4.gate')}
{t('landing.v4.gateValue')}
{t('landing.v4.cta')} {t('landing.v4.clean')}
); }