diff --git a/package-lock.json b/package-lock.json
index 29b9ccf..b11a7aa 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -740,7 +740,8 @@
"version": "3.9.1",
"resolved": "https://registry.npmjs.org/@maskito/core/-/core-3.9.1.tgz",
"integrity": "sha512-Sa3GFdgWZKRBLAVrrHbT0uI6fI8zMy2/yPvBuhxG5W4a+uYRCb9mpC52yZaUcVa7Gq4OvFIy03c53LntuXStmw==",
- "license": "Apache-2.0"
+ "license": "Apache-2.0",
+ "peer": true
},
"node_modules/@maskito/kit": {
"version": "3.9.1",
@@ -1093,6 +1094,7 @@
"integrity": "sha512-lr3jdBw/BGj49Eps7EvqlUaoeA0xpj3pc0RoJkHpYaCHkVK7i28dKyImLQb3JVlqs3aYSXf7qYuWOW/fgZnTXQ==",
"dev": true,
"license": "MIT",
+ "peer": true,
"dependencies": {
"csstype": "^3.0.2"
}
@@ -1163,6 +1165,7 @@
"integrity": "sha512-4O3idHxhyzjClSMJ0a29AcoK0+YwnEqzI6oz3vlRf3xw0zbzt15MzXwItOlnr5nIth6zlY2RENLsOPvhyrKAQA==",
"dev": true,
"license": "MIT",
+ "peer": true,
"dependencies": {
"@typescript-eslint/scope-manager": "8.34.1",
"@typescript-eslint/types": "8.34.1",
@@ -1679,6 +1682,7 @@
"integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==",
"dev": true,
"license": "MIT",
+ "peer": true,
"bin": {
"acorn": "bin/acorn"
},
@@ -2563,7 +2567,8 @@
"version": "3.1.3",
"resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz",
"integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==",
- "license": "MIT"
+ "license": "MIT",
+ "peer": true
},
"node_modules/damerau-levenshtein": {
"version": "1.0.8",
@@ -2723,7 +2728,8 @@
"version": "0.0.1534754",
"resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1534754.tgz",
"integrity": "sha512-26T91cV5dbOYnXdJi5qQHoTtUoNEqwkHcAyu/IKtjIAxiEqPMrDiRkDOPWVsGfNZGmlQVHQbZRSjD8sxagWVsQ==",
- "license": "BSD-3-Clause"
+ "license": "BSD-3-Clause",
+ "peer": true
},
"node_modules/doctrine": {
"version": "2.1.0",
@@ -3032,6 +3038,7 @@
"integrity": "sha512-BhHmn2yNOFA9H9JmmIVKJmd288g9hrVRDkdoIgRCRuSySRUHH7r/DI6aAXW9T1WwUuY3DFgrcaqB+deURBLR5g==",
"dev": true,
"license": "MIT",
+ "peer": true,
"dependencies": {
"@eslint-community/eslint-utils": "^4.8.0",
"@eslint-community/regexpp": "^4.12.1",
@@ -3205,6 +3212,7 @@
"integrity": "sha512-whOE1HFo/qJDyX4SnXzP4N6zOWn79WhnCUY/iDR0mPfQZO8wcYE4JClzI2oZrhBnnMUCBCHZhO6VQyoBU95mZA==",
"dev": true,
"license": "MIT",
+ "peer": true,
"dependencies": {
"@rtsao/scc": "^1.1.0",
"array-includes": "^3.1.9",
@@ -4694,7 +4702,8 @@
"version": "1.12.9",
"resolved": "https://registry.npmjs.org/libphonenumber-js/-/libphonenumber-js-1.12.9.tgz",
"integrity": "sha512-VWwAdNeJgN7jFOD+wN4qx83DTPMVPPAUyx9/TUkBXKLiNkuWWk6anV0439tgdtwaJDrEdqkvdN22iA6J4bUCZg==",
- "license": "MIT"
+ "license": "MIT",
+ "peer": true
},
"node_modules/lilconfig": {
"version": "3.1.3",
@@ -5520,6 +5529,7 @@
"resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz",
"integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==",
"license": "MIT",
+ "peer": true,
"dependencies": {
"loose-envify": "^1.4.0",
"object-assign": "^4.1.1",
@@ -5636,6 +5646,7 @@
"resolved": "https://registry.npmjs.org/react/-/react-19.1.1.tgz",
"integrity": "sha512-w8nqGImo45dmMIfljjMwOGtbmC/mk4CMYhWIicdSflH91J9TyCyczcPFXJzrZ/ZXcgGRFeP6BU0BEJTw6tZdfQ==",
"license": "MIT",
+ "peer": true,
"engines": {
"node": ">=0.10.0"
}
@@ -5645,6 +5656,7 @@
"resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.1.1.tgz",
"integrity": "sha512-Dlq/5LAZgF0Gaz6yiqZCf6VCcZs1ghAJyrsu84Q/GT0gV+mCxbfmKNoGRKBYMJ8IEdGPqu49YWXD02GCknEDkw==",
"license": "MIT",
+ "peer": true,
"dependencies": {
"scheduler": "^0.26.0"
},
@@ -5657,6 +5669,7 @@
"resolved": "https://registry.npmjs.org/react-hook-form/-/react-hook-form-7.60.0.tgz",
"integrity": "sha512-SBrYOvMbDB7cV8ZfNpaiLcgjH/a1c7aK0lK+aNigpf4xWLO8q+o4tcvVurv3c4EOyzn/3dCsYt4GKD42VvJ/+A==",
"license": "MIT",
+ "peer": true,
"engines": {
"node": ">=18.0.0"
},
@@ -5927,6 +5940,7 @@
"integrity": "sha512-4UHg6prsrycW20fqLGPShtEvo/WyHRVRHwOP4DzkUrObWoWI05QBSfzU71TVB7PFaL104TwNaHpjlWXAZbQiNQ==",
"devOptional": true,
"license": "MIT",
+ "peer": true,
"dependencies": {
"chokidar": ">=3.0.0 <4.0.0",
"immutable": "^4.0.0",
@@ -6645,6 +6659,7 @@
"integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==",
"dev": true,
"license": "MIT",
+ "peer": true,
"engines": {
"node": ">=12"
},
@@ -6800,6 +6815,7 @@
"integrity": "sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==",
"devOptional": true,
"license": "Apache-2.0",
+ "peer": true,
"bin": {
"tsc": "bin/tsc",
"tsserver": "bin/tsserver"
diff --git a/src/app/api/og/route.ts b/src/app/api/og/route.ts
index 6010da7..4eddd28 100644
--- a/src/app/api/og/route.ts
+++ b/src/app/api/og/route.ts
@@ -25,8 +25,8 @@ export async function GET(req: NextRequest) {
">
-
${title}
diff --git a/src/app/contacts/page.tsx b/src/app/contacts/page.tsx
index c505079..dd14e5d 100644
--- a/src/app/contacts/page.tsx
+++ b/src/app/contacts/page.tsx
@@ -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
;
diff --git a/src/app/cookies/page.tsx b/src/app/cookies/page.tsx
index ed3c882..f4f3bd6 100644
--- a/src/app/cookies/page.tsx
+++ b/src/app/cookies/page.tsx
@@ -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
;
diff --git a/src/app/experts/borodin-vitalij-petrovich/page.tsx b/src/app/experts/borodin-vitalij-petrovich/page.tsx
index fa36e60..0cb07ee 100644
--- a/src/app/experts/borodin-vitalij-petrovich/page.tsx
+++ b/src/app/experts/borodin-vitalij-petrovich/page.tsx
@@ -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
;
diff --git a/src/app/experts/gjulmamedov-javar-firmamed-ogly/page.tsx b/src/app/experts/gjulmamedov-javar-firmamed-ogly/page.tsx
index e1ae8d7..8432543 100644
--- a/src/app/experts/gjulmamedov-javar-firmamed-ogly/page.tsx
+++ b/src/app/experts/gjulmamedov-javar-firmamed-ogly/page.tsx
@@ -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
;
diff --git a/src/app/experts/jancen-jana-nikolaevna/page.tsx b/src/app/experts/jancen-jana-nikolaevna/page.tsx
index 84cfaef..9da6795 100644
--- a/src/app/experts/jancen-jana-nikolaevna/page.tsx
+++ b/src/app/experts/jancen-jana-nikolaevna/page.tsx
@@ -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
;
diff --git a/src/app/experts/kaminskij-dmitrij-olegovich/page.tsx b/src/app/experts/kaminskij-dmitrij-olegovich/page.tsx
index 22d06d3..d3ab2f2 100644
--- a/src/app/experts/kaminskij-dmitrij-olegovich/page.tsx
+++ b/src/app/experts/kaminskij-dmitrij-olegovich/page.tsx
@@ -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
;
diff --git a/src/app/experts/kolodij-aleksandr-sergeevich/page.tsx b/src/app/experts/kolodij-aleksandr-sergeevich/page.tsx
index df2262c..79f2089 100644
--- a/src/app/experts/kolodij-aleksandr-sergeevich/page.tsx
+++ b/src/app/experts/kolodij-aleksandr-sergeevich/page.tsx
@@ -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
;
diff --git a/src/app/experts/mikova-inna-georgievna/page.tsx b/src/app/experts/mikova-inna-georgievna/page.tsx
index 37fbf66..18d4db5 100644
--- a/src/app/experts/mikova-inna-georgievna/page.tsx
+++ b/src/app/experts/mikova-inna-georgievna/page.tsx
@@ -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
;
diff --git a/src/app/experts/mitjaev-aleksej-aleksandrovich/page.tsx b/src/app/experts/mitjaev-aleksej-aleksandrovich/page.tsx
index 4b09984..96239fe 100644
--- a/src/app/experts/mitjaev-aleksej-aleksandrovich/page.tsx
+++ b/src/app/experts/mitjaev-aleksej-aleksandrovich/page.tsx
@@ -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
;
diff --git a/src/app/experts/page.tsx b/src/app/experts/page.tsx
index e61eb48..e68c740 100644
--- a/src/app/experts/page.tsx
+++ b/src/app/experts/page.tsx
@@ -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
;
diff --git a/src/app/experts/polinov-andrej-vladimirovich/page.tsx b/src/app/experts/polinov-andrej-vladimirovich/page.tsx
index 6d2df64..13bc377 100644
--- a/src/app/experts/polinov-andrej-vladimirovich/page.tsx
+++ b/src/app/experts/polinov-andrej-vladimirovich/page.tsx
@@ -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
;
diff --git a/src/app/experts/volkova-goncharova-tatjana-anatolevna/page.tsx b/src/app/experts/volkova-goncharova-tatjana-anatolevna/page.tsx
index 78d1789..4aa32dd 100644
--- a/src/app/experts/volkova-goncharova-tatjana-anatolevna/page.tsx
+++ b/src/app/experts/volkova-goncharova-tatjana-anatolevna/page.tsx
@@ -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
;
diff --git a/src/app/page.tsx b/src/app/page.tsx
index 9ea420e..9d0272c 100644
--- a/src/app/page.tsx
+++ b/src/app/page.tsx
@@ -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
;
diff --git a/src/app/privacy-policy/page.tsx b/src/app/privacy-policy/page.tsx
index 7723b1b..4dad5d2 100644
--- a/src/app/privacy-policy/page.tsx
+++ b/src/app/privacy-policy/page.tsx
@@ -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
;
diff --git a/src/app/user-agreement/page.tsx b/src/app/user-agreement/page.tsx
index 617f9bb..06b3497 100644
--- a/src/app/user-agreement/page.tsx
+++ b/src/app/user-agreement/page.tsx
@@ -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
;
diff --git a/src/shared/lib/clickOutside/useClickOutside.tsx b/src/shared/lib/clickOutside/useClickOutside.tsx
index aab6bb7..79e1178 100644
--- a/src/shared/lib/clickOutside/useClickOutside.tsx
+++ b/src/shared/lib/clickOutside/useClickOutside.tsx
@@ -1,3 +1,5 @@
+'use client';
+
import { RefObject, useEffect } from 'react';
export function useClickOutside(
diff --git a/src/shared/lib/index.ts b/src/shared/lib/index.ts
index c2178b3..9c10a56 100644
--- a/src/shared/lib/index.ts
+++ b/src/shared/lib/index.ts
@@ -1,2 +1,4 @@
export { useClickOutside } from './clickOutside';
export { detectIOS } from './detectIOS';
+export * from './metaInfo';
+export * from './phoneBeautify';
diff --git a/src/shared/lib/metaInfo/index.ts b/src/shared/lib/metaInfo/index.ts
new file mode 100644
index 0000000..c8a1341
--- /dev/null
+++ b/src/shared/lib/metaInfo/index.ts
@@ -0,0 +1 @@
+export * from './metaInfo';
diff --git a/src/shared/lib/metaInfo/metaInfo.ts b/src/shared/lib/metaInfo/metaInfo.ts
new file mode 100644
index 0000000..5720f08
--- /dev/null
+++ b/src/shared/lib/metaInfo/metaInfo.ts
@@ -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 };
diff --git a/src/shared/lib/phoneBeautify/index.ts b/src/shared/lib/phoneBeautify/index.ts
new file mode 100644
index 0000000..a9249b5
--- /dev/null
+++ b/src/shared/lib/phoneBeautify/index.ts
@@ -0,0 +1 @@
+export * from './phoneBeautify';
diff --git a/src/shared/lib/phoneBeautify/phoneBeautify.ts b/src/shared/lib/phoneBeautify/phoneBeautify.ts
index 109a5ad..00c40b9 100644
--- a/src/shared/lib/phoneBeautify/phoneBeautify.ts
+++ b/src/shared/lib/phoneBeautify/phoneBeautify.ts
@@ -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 };
diff --git a/src/widgets/consultation-modal/ui.tsx b/src/widgets/consultation-modal/ui.tsx
index 9eb95c6..1d61f54 100644
--- a/src/widgets/consultation-modal/ui.tsx
+++ b/src/widgets/consultation-modal/ui.tsx
@@ -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({
/>
Нажимая на кнопку, вы даете согласие на обработку своих персональных
- данных и соглашаетесь с
- Политикой конфиденциальности
+ данных и соглашаетесь с{' '}
+
+ Политикой конфиденциальности
+