Apps, web, i18n, UI, partners, payouts, backoffice, bariki, prod infra

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
zabudko-ruandClaude Opus 5.5 committed 2026-10-25 22:55:29 +04:00
1 parent 45d7512d2b
commit 3489e0b816
319 files changed
+45483 -121

No files matched your search

@@ -0,0 +1,8 @@
import { redirect } from 'next/navigation';
/** /apartments → /ru/apartments (страница квартир есть только на русском); ?a= и UTM сохраняются */
export default async function ApartmentsRedirect({ searchParams }: { searchParams: Promise<Record<string, string | string[] | undefined>> }) {
const qs = new URLSearchParams();
for (const [k, v] of Object.entries(await searchParams)) if (typeof v === 'string') qs.set(k, v);
redirect(`/ru/apartments${qs.size ? `?${qs}` : ''}`);
}
@@ -0,0 +1,6 @@
import { redirectToLocale } from '../../../lib/redirect';
/** barevclub.com/clean → /<язык>/clean — короткий адрес для рекламы и QR */
export default async function CleanRedirect({ searchParams }: { searchParams: Promise<Record<string, string | string[] | undefined>> }) {
return redirectToLocale(searchParams, '/clean');
}
@@ -0,0 +1,8 @@
import { redirect } from 'next/navigation';
/** /flower → /ru/flower (страница цветов пока только на русском); ?a= и UTM сохраняются */
export default async function FlowerRedirect({ searchParams }: { searchParams: Promise<Record<string, string | string[] | undefined>> }) {
const qs = new URLSearchParams();
for (const [k, v] of Object.entries(await searchParams)) if (typeof v === 'string') qs.set(k, v);
redirect(`/ru/flower${qs.size ? `?${qs}` : ''}`);
}
@@ -0,0 +1,6 @@
import { redirectToLocale } from '../../../lib/redirect';
/** /land1 → /<язык>/land1 */
export default async function Land1Redirect({ searchParams }: { searchParams: Promise<Record<string, string | string[] | undefined>> }) {
return redirectToLocale(searchParams, '/land1');
}
@@ -0,0 +1,6 @@
import { redirectToLocale } from '../../../lib/redirect';
/** /land2 → /<язык>/land2 */
export default async function Land2Redirect({ searchParams }: { searchParams: Promise<Record<string, string | string[] | undefined>> }) {
return redirectToLocale(searchParams, '/land2');
}
@@ -0,0 +1,6 @@
import { redirectToLocale } from '../../../lib/redirect';
/** /land3 → /<язык>/land3 */
export default async function Land3Redirect({ searchParams }: { searchParams: Promise<Record<string, string | string[] | undefined>> }) {
return redirectToLocale(searchParams, '/land3');
}
@@ -0,0 +1,6 @@
import { redirectToLocale } from '../../../lib/redirect';
/** /land4 → /<язык>/land4 */
export default async function Land4Redirect({ searchParams }: { searchParams: Promise<Record<string, string | string[] | undefined>> }) {
return redirectToLocale(searchParams, '/land4');
}
@@ -0,0 +1,6 @@
import { redirectToLocale } from '../../../lib/redirect';
/** /land5 → /<язык>/land5 */
export default async function Land5Redirect({ searchParams }: { searchParams: Promise<Record<string, string | string[] | undefined>> }) {
return redirectToLocale(searchParams, '/land5');
}
@@ -0,0 +1,6 @@
import { redirectToLocale } from '../../../lib/redirect';
/** /land6 → /<язык>/land6 */
export default async function Land6Redirect({ searchParams }: { searchParams: Promise<Record<string, string | string[] | undefined>> }) {
return redirectToLocale(searchParams, '/land6');
}
+10
View File
@@ -0,0 +1,10 @@
import type { ReactNode } from 'react';
// Отдельный root layout для «/», который только перенаправляет на язык
export default function RedirectLayout({ children }: { children: ReactNode }) {
return (
<html lang="ru">
<body>{children}</body>
</html>
);
}
@@ -0,0 +1,6 @@
import { redirectToLocale } from '../../../lib/redirect';
/** /live → /<язык>/live */
export default async function LiveRedirect({ searchParams }: { searchParams: Promise<Record<string, string | string[] | undefined>> }) {
return redirectToLocale(searchParams, '/live');
}
+6
View File
@@ -0,0 +1,6 @@
import { redirectToLocale } from '../../lib/redirect';
/** «/» → /<язык> */
export default async function Root({ searchParams }: { searchParams: Promise<Record<string, string | string[] | undefined>> }) {
return redirectToLocale(searchParams);
}