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:
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');
|
||||
}
|
||||
@@ -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');
|
||||
}
|
||||
@@ -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);
|
||||
}
|
||||
Reference in new issue
Block a user