fix: update opengraph gen
This commit is contained in:
@@ -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>
|
||||
|
||||
@@ -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 />;
|
||||
|
||||
@@ -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 />;
|
||||
|
||||
@@ -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 />;
|
||||
|
||||
@@ -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 />;
|
||||
|
||||
@@ -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 />;
|
||||
|
||||
@@ -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 />;
|
||||
|
||||
@@ -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 />;
|
||||
|
||||
@@ -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 />;
|
||||
|
||||
@@ -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 />;
|
||||
|
||||
@@ -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 />;
|
||||
|
||||
@@ -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 />;
|
||||
|
||||
@@ -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 />;
|
||||
|
||||
@@ -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 />;
|
||||
|
||||
@@ -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 />;
|
||||
|
||||
@@ -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 />;
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
'use client';
|
||||
|
||||
import { RefObject, useEffect } from 'react';
|
||||
|
||||
export function useClickOutside(
|
||||
|
||||
@@ -1,2 +1,4 @@
|
||||
export { useClickOutside } from './clickOutside';
|
||||
export { detectIOS } from './detectIOS';
|
||||
export * from './metaInfo';
|
||||
export * from './phoneBeautify';
|
||||
|
||||
1
src/shared/lib/metaInfo/index.ts
Normal file
1
src/shared/lib/metaInfo/index.ts
Normal file
@@ -0,0 +1 @@
|
||||
export * from './metaInfo';
|
||||
69
src/shared/lib/metaInfo/metaInfo.ts
Normal file
69
src/shared/lib/metaInfo/metaInfo.ts
Normal 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 };
|
||||
1
src/shared/lib/phoneBeautify/index.ts
Normal file
1
src/shared/lib/phoneBeautify/index.ts
Normal file
@@ -0,0 +1 @@
|
||||
export * from './phoneBeautify';
|
||||
@@ -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 };
|
||||
|
||||
@@ -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'>
|
||||
Отправить
|
||||
|
||||
Reference in New Issue
Block a user