Files
2026-10-25 22:55:29 +04:00

40 lines
1.8 KiB
TypeScript

import { createT, isLocale, LOCALES, type Locale } from '@barev/i18n';
import { Logo } from '@barev/ui';
import type { Metadata } from 'next';
import { BotLink, LangMenu, LangSwitch } from './client';
/** Экспериментальные версии лендинга (/land1…3): своя каноническая ссылка и noindex, чтобы не конкурировать с главной в поиске */
export async function variantMetadata(params: Promise<{ locale: string }>, path: string, titleKey: string): Promise<Metadata> {
const { locale } = await params;
if (!isLocale(locale)) return {};
const t = createT(locale);
return {
title: `${t(titleKey)} — Barev Club`,
description: t('landing.meta.description'),
robots: { index: false, follow: true },
alternates: { canonical: `/${locale}${path}`, languages: Object.fromEntries(LOCALES.map((l) => [l, `/${l}${path}`])) },
};
}
/** Шапка версий лендинга: логотип ведёт на главную, языки остаются на той же версии */
export function VariantHeader({ locale, path, className, logoColor }: { locale: Locale; path: string; className?: string; logoColor?: string }) {
const t = createT(locale);
return (
<header className={`vh ${className ?? ''}`}>
<a href={`/${locale}`} aria-label="Barev Club" className="vh__logo">
<Logo color={logoColor} />
</a>
<div className="vh__right">
<div className="vh__langs">
<LangSwitch current={locale} path={path} />
</div>
<LangMenu current={locale} path={path} />
<BotLink className="bc-btn bc-btn--sm vh__cta">
<span className="tg-long">{t('landing.openTelegram')}</span>
<span className="tg-short">Telegram</span>
</BotLink>
</div>
</header>
);
}