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) { "> -

- ☏ +7 (900) 241-34-34 +

+ ☎ +7 (900) 241-34-34

${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({ /> Нажимая на кнопку, вы даете согласие на обработку своих персональных - данных и соглашаетесь с - Политикой конфиденциальности + данных и соглашаетесь с{' '} + + Политикой конфиденциальности +