fix: update opengraph gen

This commit is contained in:
2025-12-10 16:53:51 +03:00
parent e3e9d14ea9
commit 9ec44b9432
25 changed files with 176 additions and 565 deletions

View File

@@ -25,8 +25,8 @@ export async function GET(req: NextRequest) {
">
<img src="${imageUrl}" style="object-fit: cover; width:100%; height:100%; opacity:0.5; position:absolute; left:0; top:0;" />
<img src="${logoUrl}" style="width: 288px; height: 89px; position:absolute; left:10px; top:20px;" />
<p style="position: absolute; top: 24px; right:20px; color: white; font-family: Arial, Helvetica, sans-serif; font-size: 24px; ">
+7 (900) 241-34-34
<p style="position: absolute; top: 24px; right:20px; color: white; font-family: Arial, Helvetica, sans-serif; font-size: 20px; ">
+7 (900) 241-34-34
</p>
<div style="position: absolute; top: 140px; left: 20px; width:100%; height:100%;">
<h2 style="color: white; font-family: Arial, Helvetica, sans-serif; font-size: 40px; line-height: 1;">${title}</h2>

View File

@@ -1,5 +1,6 @@
import { Contacts } from '@/views';
import type { Metadata } from 'next';
import { metaInfo } from '@shared/lib';
const metainfo = {
title: 'Контакты',
@@ -12,41 +13,7 @@ const metainfo = {
ogImageDescription: 'Независимая оценка и судебная экспертиза',
};
export const metadata: Metadata = {
title: `${metainfo.title} | ${metainfo.companyName}`,
description: `${metainfo.description} ${metainfo.phone}`,
openGraph: {
title: metainfo.title,
description: metainfo.description,
url: metainfo.url,
images: [
{
url: `${metainfo.url}/api/og/?title=${metainfo.title}&description=${metainfo.description}`,
secureUrl: `${metainfo.url}/api/og/?title=${metainfo.title}&description=${metainfo.description}`,
width: 600,
height: 315,
alt: `${metainfo.title} - ${metainfo.companyName}`,
},
],
locale: 'ru_RU',
type: 'website',
siteName: `${metainfo.title} - ${metainfo.companyName}`,
},
twitter: {
card: 'summary_large_image',
title: `${metainfo.title} - ${metainfo.companyName}`,
description: `${metainfo.description} ${metainfo.phone}`,
creator: '@ditraso',
images: [
{
url: `${metainfo.url}/api/og/?title=${metainfo.title}&description=${metainfo.description}`,
width: 600,
height: 315,
alt: `${metainfo.title} - ${metainfo.companyName}`,
},
],
},
};
export const metadata: Metadata = metaInfo(metainfo);
export default function Page() {
return <Contacts />;

View File

@@ -1,5 +1,6 @@
import { Cookie } from '@/views';
import type { Metadata } from 'next';
import { metaInfo } from '@shared/lib';
const metainfo = {
title: 'Независимая оценка и судебная экспертиза',
@@ -12,41 +13,7 @@ const metainfo = {
ogImageDescription: 'Независимая оценка и судебная экспертиза',
};
export const metadata: Metadata = {
title: `${metainfo.title} | ${metainfo.companyName}`,
description: `${metainfo.description} ${metainfo.phone}`,
openGraph: {
title: metainfo.title,
description: metainfo.description,
url: metainfo.url,
images: [
{
url: `${metainfo.url}/api/og/?title=${metainfo.title}&description=${metainfo.description}`,
secureUrl: `${metainfo.url}/api/og/?title=${metainfo.title}&description=${metainfo.description}`,
width: 600,
height: 315,
alt: `${metainfo.title} - ${metainfo.companyName}`,
},
],
locale: 'ru_RU',
type: 'website',
siteName: `${metainfo.title} - ${metainfo.companyName}`,
},
twitter: {
card: 'summary_large_image',
title: `${metainfo.title} - ${metainfo.companyName}`,
description: `${metainfo.description} ${metainfo.phone}`,
creator: '@ditraso',
images: [
{
url: `${metainfo.url}/api/og/?title=${metainfo.title}&description=${metainfo.description}`,
width: 600,
height: 315,
alt: `${metainfo.title} - ${metainfo.companyName}`,
},
],
},
};
export const metadata: Metadata = metaInfo(metainfo);
export default function Page() {
return <Cookie />;

View File

@@ -1,5 +1,6 @@
import { ExpertBorodin } from '@/views';
import type { Metadata } from 'next';
import { metaInfo } from '@shared/lib';
const metainfo = {
title: 'Эксперт - Бородин Виталий Петрович',
@@ -12,41 +13,7 @@ const metainfo = {
ogImageDescription: 'Независимая оценка и судебная экспертиза',
};
export const metadata: Metadata = {
title: `${metainfo.title} | ${metainfo.companyName}`,
description: `${metainfo.description} ${metainfo.phone}`,
openGraph: {
title: metainfo.title,
description: metainfo.description,
url: metainfo.url,
images: [
{
url: `${metainfo.url}/api/og/?title=${metainfo.title}&description=${metainfo.description}`,
secureUrl: `${metainfo.url}/api/og/?title=${metainfo.title}&description=${metainfo.description}`,
width: 600,
height: 315,
alt: `${metainfo.title} - ${metainfo.companyName}`,
},
],
locale: 'ru_RU',
type: 'website',
siteName: `${metainfo.title} - ${metainfo.companyName}`,
},
twitter: {
card: 'summary_large_image',
title: `${metainfo.title} - ${metainfo.companyName}`,
description: `${metainfo.description} ${metainfo.phone}`,
creator: '@ditraso',
images: [
{
url: `${metainfo.url}/api/og/?title=${metainfo.title}&description=${metainfo.description}`,
width: 600,
height: 315,
alt: `${metainfo.title} - ${metainfo.companyName}`,
},
],
},
};
export const metadata: Metadata = metaInfo(metainfo);
export default function Page() {
return <ExpertBorodin />;

View File

@@ -1,5 +1,6 @@
import { ExpertGulmamedov } from '@/views';
import type { Metadata } from 'next';
import { metaInfo } from '@shared/lib';
const metainfo = {
title: 'Эксперт - Гюльмамедов Явар Фирмамед-оглы',
@@ -12,41 +13,7 @@ const metainfo = {
ogImageDescription: 'Независимая оценка и судебная экспертиза',
};
export const metadata: Metadata = {
title: `${metainfo.title} | ${metainfo.companyName}`,
description: `${metainfo.description} ${metainfo.phone}`,
openGraph: {
title: metainfo.title,
description: metainfo.description,
url: metainfo.url,
images: [
{
url: `${metainfo.url}/api/og/?title=${metainfo.title}&description=${metainfo.description}`,
secureUrl: `${metainfo.url}/api/og/?title=${metainfo.title}&description=${metainfo.description}`,
width: 600,
height: 315,
alt: `${metainfo.title} - ${metainfo.companyName}`,
},
],
locale: 'ru_RU',
type: 'website',
siteName: `${metainfo.title} - ${metainfo.companyName}`,
},
twitter: {
card: 'summary_large_image',
title: `${metainfo.title} - ${metainfo.companyName}`,
description: `${metainfo.description} ${metainfo.phone}`,
creator: '@ditraso',
images: [
{
url: `${metainfo.url}/api/og/?title=${metainfo.title}&description=${metainfo.description}`,
width: 600,
height: 315,
alt: `${metainfo.title} - ${metainfo.companyName}`,
},
],
},
};
export const metadata: Metadata = metaInfo(metainfo);
export default function Page() {
return <ExpertGulmamedov />;

View File

@@ -1,5 +1,6 @@
import { ExpertYancen } from '@/views';
import type { Metadata } from 'next';
import { metaInfo } from '@shared/lib';
const metainfo = {
title: 'Эксперт - Янцен Яна Николаевна',
@@ -12,41 +13,7 @@ const metainfo = {
ogImageDescription: 'Независимая оценка и судебная экспертиза',
};
export const metadata: Metadata = {
title: `${metainfo.title} | ${metainfo.companyName}`,
description: `${metainfo.description} ${metainfo.phone}`,
openGraph: {
title: metainfo.title,
description: metainfo.description,
url: metainfo.url,
images: [
{
url: `${metainfo.url}/api/og/?title=${metainfo.title}&description=${metainfo.description}`,
secureUrl: `${metainfo.url}/api/og/?title=${metainfo.title}&description=${metainfo.description}`,
width: 600,
height: 315,
alt: `${metainfo.title} - ${metainfo.companyName}`,
},
],
locale: 'ru_RU',
type: 'website',
siteName: `${metainfo.title} - ${metainfo.companyName}`,
},
twitter: {
card: 'summary_large_image',
title: `${metainfo.title} - ${metainfo.companyName}`,
description: `${metainfo.description} ${metainfo.phone}`,
creator: '@ditraso',
images: [
{
url: `${metainfo.url}/api/og/?title=${metainfo.title}&description=${metainfo.description}`,
width: 600,
height: 315,
alt: `${metainfo.title} - ${metainfo.companyName}`,
},
],
},
};
export const metadata: Metadata = metaInfo(metainfo);
export default function Page() {
return <ExpertYancen />;

View File

@@ -1,5 +1,6 @@
import { ExpertKaminskiy } from '@/views';
import type { Metadata } from 'next';
import { metaInfo } from '@shared/lib';
const metainfo = {
title: 'Эксперт - Каминский Дмитрий Олегович',
@@ -12,41 +13,7 @@ const metainfo = {
ogImageDescription: 'Независимая оценка и судебная экспертиза',
};
export const metadata: Metadata = {
title: `${metainfo.title} | ${metainfo.companyName}`,
description: `${metainfo.description} ${metainfo.phone}`,
openGraph: {
title: metainfo.title,
description: metainfo.description,
url: metainfo.url,
images: [
{
url: `${metainfo.url}/api/og/?title=${metainfo.title}&description=${metainfo.description}`,
secureUrl: `${metainfo.url}/api/og/?title=${metainfo.title}&description=${metainfo.description}`,
width: 600,
height: 315,
alt: `${metainfo.title} - ${metainfo.companyName}`,
},
],
locale: 'ru_RU',
type: 'website',
siteName: `${metainfo.title} - ${metainfo.companyName}`,
},
twitter: {
card: 'summary_large_image',
title: `${metainfo.title} - ${metainfo.companyName}`,
description: `${metainfo.description} ${metainfo.phone}`,
creator: '@ditraso',
images: [
{
url: `${metainfo.url}/api/og/?title=${metainfo.title}&description=${metainfo.description}`,
width: 600,
height: 315,
alt: `${metainfo.title} - ${metainfo.companyName}`,
},
],
},
};
export const metadata: Metadata = metaInfo(metainfo);
export default function Page() {
return <ExpertKaminskiy />;

View File

@@ -1,5 +1,6 @@
import { ExpertKolodiy } from '@/views';
import type { Metadata } from 'next';
import { metaInfo } from '@shared/lib';
const metainfo = {
title: 'Эксперт - Колодий Александр Сергеевич',
@@ -12,41 +13,7 @@ const metainfo = {
ogImageDescription: 'Независимая оценка и судебная экспертиза',
};
export const metadata: Metadata = {
title: `${metainfo.title} | ${metainfo.companyName}`,
description: `${metainfo.description} ${metainfo.phone}`,
openGraph: {
title: metainfo.title,
description: metainfo.description,
url: metainfo.url,
images: [
{
url: `${metainfo.url}/api/og/?title=${metainfo.title}&description=${metainfo.description}`,
secureUrl: `${metainfo.url}/api/og/?title=${metainfo.title}&description=${metainfo.description}`,
width: 600,
height: 315,
alt: `${metainfo.title} - ${metainfo.companyName}`,
},
],
locale: 'ru_RU',
type: 'website',
siteName: `${metainfo.title} - ${metainfo.companyName}`,
},
twitter: {
card: 'summary_large_image',
title: `${metainfo.title} - ${metainfo.companyName}`,
description: `${metainfo.description} ${metainfo.phone}`,
creator: '@ditraso',
images: [
{
url: `${metainfo.url}/api/og/?title=${metainfo.title}&description=${metainfo.description}`,
width: 600,
height: 315,
alt: `${metainfo.title} - ${metainfo.companyName}`,
},
],
},
};
export const metadata: Metadata = metaInfo(metainfo);
export default function Page() {
return <ExpertKolodiy />;

View File

@@ -1,5 +1,6 @@
import { ExpertMikova } from '@/views';
import type { Metadata } from 'next';
import { metaInfo } from '@shared/lib';
const metainfo = {
title: 'Эксперт - Микова Инна Георгиевна',
@@ -12,41 +13,7 @@ const metainfo = {
ogImageDescription: 'Независимая оценка и судебная экспертиза',
};
export const metadata: Metadata = {
title: `${metainfo.title} | ${metainfo.companyName}`,
description: `${metainfo.description} ${metainfo.phone}`,
openGraph: {
title: metainfo.title,
description: metainfo.description,
url: metainfo.url,
images: [
{
url: `${metainfo.url}/api/og/?title=${metainfo.title}&description=${metainfo.description}`,
secureUrl: `${metainfo.url}/api/og/?title=${metainfo.title}&description=${metainfo.description}`,
width: 600,
height: 315,
alt: `${metainfo.title} - ${metainfo.companyName}`,
},
],
locale: 'ru_RU',
type: 'website',
siteName: `${metainfo.title} - ${metainfo.companyName}`,
},
twitter: {
card: 'summary_large_image',
title: `${metainfo.title} - ${metainfo.companyName}`,
description: `${metainfo.description} ${metainfo.phone}`,
creator: '@ditraso',
images: [
{
url: `${metainfo.url}/api/og/?title=${metainfo.title}&description=${metainfo.description}`,
width: 600,
height: 315,
alt: `${metainfo.title} - ${metainfo.companyName}`,
},
],
},
};
export const metadata: Metadata = metaInfo(metainfo);
export default function Page() {
return <ExpertMikova />;

View File

@@ -1,5 +1,6 @@
import { ExpertMityaev } from '@/views';
import type { Metadata } from 'next';
import { metaInfo } from '@shared/lib';
const metainfo = {
title: 'Эксперт - Митяев Алексей Александрович',
@@ -12,41 +13,7 @@ const metainfo = {
ogImageDescription: 'Независимая оценка и судебная экспертиза',
};
export const metadata: Metadata = {
title: `${metainfo.title} | ${metainfo.companyName}`,
description: `${metainfo.description} ${metainfo.phone}`,
openGraph: {
title: metainfo.title,
description: metainfo.description,
url: metainfo.url,
images: [
{
url: `${metainfo.url}/api/og/?title=${metainfo.title}&description=${metainfo.description}`,
secureUrl: `${metainfo.url}/api/og/?title=${metainfo.title}&description=${metainfo.description}`,
width: 600,
height: 315,
alt: `${metainfo.title} - ${metainfo.companyName}`,
},
],
locale: 'ru_RU',
type: 'website',
siteName: `${metainfo.title} - ${metainfo.companyName}`,
},
twitter: {
card: 'summary_large_image',
title: `${metainfo.title} - ${metainfo.companyName}`,
description: `${metainfo.description} ${metainfo.phone}`,
creator: '@ditraso',
images: [
{
url: `${metainfo.url}/api/og/?title=${metainfo.title}&description=${metainfo.description}`,
width: 600,
height: 315,
alt: `${metainfo.title} - ${metainfo.companyName}`,
},
],
},
};
export const metadata: Metadata = metaInfo(metainfo);
export default function Page() {
return <ExpertMityaev />;

View File

@@ -1,5 +1,6 @@
import { Experts } from '@/views';
import type { Metadata } from 'next';
import { metaInfo } from '@shared/lib';
const metainfo = {
title: 'Эксперты',
@@ -12,41 +13,7 @@ const metainfo = {
ogImageDescription: 'Независимая оценка и судебная экспертиза',
};
export const metadata: Metadata = {
title: `${metainfo.title} | ${metainfo.companyName}`,
description: `${metainfo.description} ${metainfo.phone}`,
openGraph: {
title: metainfo.title,
description: metainfo.description,
url: metainfo.url,
images: [
{
url: `${metainfo.url}/api/og/?title=${metainfo.title}&description=${metainfo.description}`,
secureUrl: `${metainfo.url}/api/og/?title=${metainfo.title}&description=${metainfo.description}`,
width: 600,
height: 315,
alt: `${metainfo.title} - ${metainfo.companyName}`,
},
],
locale: 'ru_RU',
type: 'website',
siteName: `${metainfo.title} - ${metainfo.companyName}`,
},
twitter: {
card: 'summary_large_image',
title: `${metainfo.title} - ${metainfo.companyName}`,
description: `${metainfo.description} ${metainfo.phone}`,
creator: '@ditraso',
images: [
{
url: `${metainfo.url}/api/og/?title=${metainfo.title}&description=${metainfo.description}`,
width: 600,
height: 315,
alt: `${metainfo.title} - ${metainfo.companyName}`,
},
],
},
};
export const metadata: Metadata = metaInfo(metainfo);
export default function Page() {
return <Experts />;

View File

@@ -1,5 +1,6 @@
import { ExpertPolinov } from '@/views';
import type { Metadata } from 'next';
import { metaInfo } from '@shared/lib';
const metainfo = {
title: 'Эксперт - Полинов Андрей Владимирович',
@@ -12,41 +13,7 @@ const metainfo = {
ogImageDescription: 'Независимая оценка и судебная экспертиза',
};
export const metadata: Metadata = {
title: `${metainfo.title} | ${metainfo.companyName}`,
description: `${metainfo.description} ${metainfo.phone}`,
openGraph: {
title: metainfo.title,
description: metainfo.description,
url: metainfo.url,
images: [
{
url: `${metainfo.url}/api/og/?title=${metainfo.title}&description=${metainfo.description}`,
secureUrl: `${metainfo.url}/api/og/?title=${metainfo.title}&description=${metainfo.description}`,
width: 600,
height: 315,
alt: `${metainfo.title} - ${metainfo.companyName}`,
},
],
locale: 'ru_RU',
type: 'website',
siteName: `${metainfo.title} - ${metainfo.companyName}`,
},
twitter: {
card: 'summary_large_image',
title: `${metainfo.title} - ${metainfo.companyName}`,
description: `${metainfo.description} ${metainfo.phone}`,
creator: '@ditraso',
images: [
{
url: `${metainfo.url}/api/og/?title=${metainfo.title}&description=${metainfo.description}`,
width: 600,
height: 315,
alt: `${metainfo.title} - ${metainfo.companyName}`,
},
],
},
};
export const metadata: Metadata = metaInfo(metainfo);
export default function Page() {
return <ExpertPolinov />;

View File

@@ -1,5 +1,6 @@
import { ExpertVolkovaGoncharova } from '@/views';
import type { Metadata } from 'next';
import { metaInfo } from '@shared/lib';
const metainfo = {
title: 'Эксперт - Волкова-Гончарова Татьяна Анатольевна',
@@ -12,41 +13,7 @@ const metainfo = {
ogImageDescription: 'Независимая оценка и судебная экспертиза',
};
export const metadata: Metadata = {
title: `${metainfo.title} | ${metainfo.companyName}`,
description: `${metainfo.description} ${metainfo.phone}`,
openGraph: {
title: metainfo.title,
description: metainfo.description,
url: metainfo.url,
images: [
{
url: `${metainfo.url}/api/og/?title=${metainfo.title}&description=${metainfo.description}`,
secureUrl: `${metainfo.url}/api/og/?title=${metainfo.title}&description=${metainfo.description}`,
width: 600,
height: 315,
alt: `${metainfo.title} - ${metainfo.companyName}`,
},
],
locale: 'ru_RU',
type: 'website',
siteName: `${metainfo.title} - ${metainfo.companyName}`,
},
twitter: {
card: 'summary_large_image',
title: `${metainfo.title} - ${metainfo.companyName}`,
description: `${metainfo.description} ${metainfo.phone}`,
creator: '@ditraso',
images: [
{
url: `${metainfo.url}/api/og/?title=${metainfo.title}&description=${metainfo.description}`,
width: 600,
height: 315,
alt: `${metainfo.title} - ${metainfo.companyName}`,
},
],
},
};
export const metadata: Metadata = metaInfo(metainfo);
export default function Page() {
return <ExpertVolkovaGoncharova />;

View File

@@ -1,5 +1,6 @@
import { Home } from '@/views';
import type { Metadata } from 'next';
import { metaInfo } from '@shared/lib';
const metainfo = {
title: 'Независимая оценка и судебная экспертиза',
@@ -12,41 +13,7 @@ const metainfo = {
ogImageDescription: 'Независимая оценка и судебная экспертиза',
};
export const metadata: Metadata = {
title: `${metainfo.title} | ${metainfo.companyName}`,
description: `${metainfo.description} ${metainfo.phone}`,
openGraph: {
title: metainfo.title,
description: metainfo.description,
url: metainfo.url,
images: [
{
url: `${metainfo.url}/api/og/?title=${metainfo.title}&description=${metainfo.description}`,
secureUrl: `${metainfo.url}/api/og/?title=${metainfo.title}&description=${metainfo.description}`,
width: 600,
height: 315,
alt: `${metainfo.title} - ${metainfo.companyName}`,
},
],
locale: 'ru_RU',
type: 'website',
siteName: `${metainfo.title} - ${metainfo.companyName}`,
},
twitter: {
card: 'summary_large_image',
title: `${metainfo.title} - ${metainfo.companyName}`,
description: `${metainfo.description} ${metainfo.phone}`,
creator: '@ditraso',
images: [
{
url: `${metainfo.url}/api/og/?title=${metainfo.title}&description=${metainfo.description}`,
width: 600,
height: 315,
alt: `${metainfo.title} - ${metainfo.companyName}`,
},
],
},
};
export const metadata: Metadata = metaInfo(metainfo);
export default function HomePage() {
return <Home />;

View File

@@ -1,5 +1,6 @@
import { PrivacyPolicy } from '@/views';
import type { Metadata } from 'next';
import { metaInfo } from '@shared/lib';
const metainfo = {
title: 'Независимая оценка и судебная экспертиза',
@@ -12,41 +13,7 @@ const metainfo = {
ogImageDescription: 'Независимая оценка и судебная экспертиза',
};
export const metadata: Metadata = {
title: `${metainfo.title} | ${metainfo.companyName}`,
description: `${metainfo.description} ${metainfo.phone}`,
openGraph: {
title: metainfo.title,
description: metainfo.description,
url: metainfo.url,
images: [
{
url: `${metainfo.url}/api/og/?title=${metainfo.title}&description=${metainfo.description}`,
secureUrl: `${metainfo.url}/api/og/?title=${metainfo.title}&description=${metainfo.description}`,
width: 600,
height: 315,
alt: `${metainfo.title} - ${metainfo.companyName}`,
},
],
locale: 'ru_RU',
type: 'website',
siteName: `${metainfo.title} - ${metainfo.companyName}`,
},
twitter: {
card: 'summary_large_image',
title: `${metainfo.title} - ${metainfo.companyName}`,
description: `${metainfo.description} ${metainfo.phone}`,
creator: '@ditraso',
images: [
{
url: `${metainfo.url}/api/og/?title=${metainfo.title}&description=${metainfo.description}`,
width: 600,
height: 315,
alt: `${metainfo.title} - ${metainfo.companyName}`,
},
],
},
};
export const metadata: Metadata = metaInfo(metainfo);
export default function Page() {
return <PrivacyPolicy />;

View File

@@ -1,5 +1,6 @@
import { UserAgreement } from '@/views';
import type { Metadata } from 'next';
import { metaInfo } from '@shared/lib';
const metainfo = {
title: 'Независимая оценка и судебная экспертиза',
@@ -12,41 +13,7 @@ const metainfo = {
ogImageDescription: 'Независимая оценка и судебная экспертиза',
};
export const metadata: Metadata = {
title: `${metainfo.title} | ${metainfo.companyName}`,
description: `${metainfo.description} ${metainfo.phone}`,
openGraph: {
title: metainfo.title,
description: metainfo.description,
url: metainfo.url,
images: [
{
url: `${metainfo.url}/api/og/?title=${metainfo.title}&description=${metainfo.description}`,
secureUrl: `${metainfo.url}/api/og/?title=${metainfo.title}&description=${metainfo.description}`,
width: 600,
height: 315,
alt: `${metainfo.title} - ${metainfo.companyName}`,
},
],
locale: 'ru_RU',
type: 'website',
siteName: `${metainfo.title} - ${metainfo.companyName}`,
},
twitter: {
card: 'summary_large_image',
title: `${metainfo.title} - ${metainfo.companyName}`,
description: `${metainfo.description} ${metainfo.phone}`,
creator: '@ditraso',
images: [
{
url: `${metainfo.url}/api/og/?title=${metainfo.title}&description=${metainfo.description}`,
width: 600,
height: 315,
alt: `${metainfo.title} - ${metainfo.companyName}`,
},
],
},
};
export const metadata: Metadata = metaInfo(metainfo);
export default function Page() {
return <UserAgreement />;

View File

@@ -1,3 +1,5 @@
'use client';
import { RefObject, useEffect } from 'react';
export function useClickOutside(

View File

@@ -1,2 +1,4 @@
export { useClickOutside } from './clickOutside';
export { detectIOS } from './detectIOS';
export * from './metaInfo';
export * from './phoneBeautify';

View File

@@ -0,0 +1 @@
export * from './metaInfo';

View File

@@ -0,0 +1,69 @@
import { Metadata } from 'next';
type TMetaInfo = {
title: string;
description: string;
companyName: string;
phone: string;
url: string;
ogImageTitle: string;
ogImageDescription: string;
width?: number;
height?: number;
locale?: string;
creator?: string;
};
function metaInfo({ ...props }: TMetaInfo): Metadata {
const {
title,
description,
companyName,
phone,
url,
ogImageTitle,
ogImageDescription,
width = 600,
height = 315,
locale = 'ru_RU',
creator = '@ditraso',
} = props;
return {
title: `${title} | ${companyName}`,
description: `${description} ${phone}`,
openGraph: {
title: title,
description: description,
url: url,
images: [
{
url: `${url}/api/og/?title=${ogImageTitle}&description=${ogImageDescription}`,
secureUrl: `${url}/api/og/?title=${ogImageTitle}&description=${ogImageDescription}`,
width: width,
height: height,
alt: `${title} - ${companyName}`,
},
],
locale: locale,
type: 'website',
siteName: `${title} - ${companyName}`,
},
twitter: {
card: 'summary_large_image',
title: `${title} - ${companyName}`,
description: `${description} ${phone}`,
creator: creator,
images: [
{
url: `${url}/api/og/?title=${ogImageTitle}&description=${ogImageDescription}`,
width: width,
height: height,
alt: `${title} - ${companyName}`,
},
],
},
};
}
export { metaInfo };

View File

@@ -0,0 +1 @@
export * from './phoneBeautify';

View File

@@ -1,4 +1,4 @@
export function phoneBeautify(phone: string): string {
function phoneBeautify(phone: string): string {
const cleaned = phone.replace(/[^\d+]/g, '');
const match = cleaned.match(/^\+?7(\d{3})(\d{3})(\d{2})(\d{2})$/);
@@ -8,3 +8,5 @@ export function phoneBeautify(phone: string): string {
return `+7 (${code}) ${part1}-${part2}-${part3}`;
}
export { phoneBeautify };

View File

@@ -53,6 +53,8 @@ function ConsultationModal({
const modal = useModal();
const handlePolicyClick = () => modal.hideModal();
const onSubmit = async (data: TForm) => {
const payload = {
...data,
@@ -133,8 +135,10 @@ function ConsultationModal({
/>
<span className={s.Agreement}>
Нажимая на кнопку, вы даете согласие на обработку своих персональных
данных и соглашаетесь с
<Link href={'/privacy-policy'}> Политикой конфиденциальности</Link>
данных и соглашаетесь с{' '}
<Link href={'/privacy-policy'} onClick={handlePolicyClick}>
Политикой конфиденциальности
</Link>
</span>
<Button className={s.SendBtn} variant='green'>
Отправить