diff --git a/.idea/workspace.xml b/.idea/workspace.xml
index f481e8f..dd5771c 100644
--- a/.idea/workspace.xml
+++ b/.idea/workspace.xml
@@ -5,8 +5,24 @@
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -14,7 +30,7 @@
-
+
@@ -42,37 +58,38 @@
- {
+ "keyToString": {
+ "ASKED_SHARE_PROJECT_CONFIGURATION_FILES": "true",
+ "ModuleVcsDetector.initialDetectionPerformed": "true",
+ "RunOnceActivity.ShowReadmeOnStart": "true",
+ "RunOnceActivity.TerminalTabsStorage.copyFrom.TerminalArrangementManager.252": "true",
+ "RunOnceActivity.git.unshallow": "true",
+ "RunOnceActivity.typescript.service.memoryLimit.init": "true",
+ "SHARE_PROJECT_CONFIGURATION_FILES": "true",
+ "com.intellij.ml.llm.matterhorn.ej.ui.settings.DefaultModelSelectionForGA.v1": "true",
+ "git-widget-placeholder": "dev",
+ "ignore.virus.scanning.warn.message": "true",
+ "js.debugger.nextJs.config.created.client": "true",
+ "js.debugger.nextJs.config.created.server": "true",
+ "junie.onboarding.icon.badge.shown": "true",
+ "list.type.of.created.stylesheet": "SCSS",
+ "node.js.detected.package.eslint": "true",
+ "node.js.detected.package.tslint": "true",
+ "node.js.selected.package.eslint": "(autodetect)",
+ "node.js.selected.package.tslint": "(autodetect)",
+ "nodejs_package_manager_path": "npm",
+ "npm.Next.js: server-side.executor": "Run",
+ "prettierjs.PrettierConfiguration.Package": "C:\\dev-personal\\ocenka-web\\node_modules\\prettier",
+ "settings.editor.selected.configurable": "terminal",
+ "to.speed.mode.migration.done": "true",
+ "ts.external.directory.path": "C:\\dev-personal\\ocenka-web\\node_modules\\typescript\\lib",
+ "vue.rearranger.settings.migration": "true"
}
-}]]>
+}
+
@@ -119,6 +136,7 @@
+
diff --git a/src/app/contacts/page.tsx b/src/app/contacts/page.tsx
index dd14e5d..eea0bc1 100644
--- a/src/app/contacts/page.tsx
+++ b/src/app/contacts/page.tsx
@@ -1,19 +1,33 @@
+import { headers } from 'next/headers';
import { Contacts } from '@/views';
import type { Metadata } from 'next';
import { metaInfo } from '@shared/lib';
+import { TMetainfo } from '@shared/types/metainfo';
-const metainfo = {
+const metainfo: TMetainfo = {
title: 'Контакты',
description:
'Услуги независимой оценки и судебной экспертизы в Сочи и Краснодаре.',
companyName: 'Компания ДИТРАСО',
phone: '+7 (900) 241-34-34',
- url: 'https://ocenka-sochi.ru',
ogImageTitle: 'Оценка и экспертиза',
ogImageDescription: 'Независимая оценка и судебная экспертиза',
};
-export const metadata: Metadata = metaInfo(metainfo);
+export async function generateMetadata(): Promise {
+ const h = await headers();
+ const referer = h.get('referer') ?? '';
+ const host = h.get('host') ?? '';
+ const proto = h.get('x-forwarded-proto') ?? '';
+ const path = referer ? new URL(referer).pathname : '';
+
+ const metainfoExtended = Object.assign({}, metainfo, {
+ host: `${proto}://${host}`,
+ path: path,
+ });
+
+ return metaInfo(metainfoExtended);
+}
export default function Page() {
return ;
diff --git a/src/app/cookies/page.tsx b/src/app/cookies/page.tsx
index f4f3bd6..5c776e1 100644
--- a/src/app/cookies/page.tsx
+++ b/src/app/cookies/page.tsx
@@ -1,19 +1,33 @@
import { Cookie } from '@/views';
import type { Metadata } from 'next';
import { metaInfo } from '@shared/lib';
+import { headers } from 'next/headers';
+import { TMetainfo } from '@shared/types/metainfo';
-const metainfo = {
+const metainfo: TMetainfo = {
title: 'Независимая оценка и судебная экспертиза',
description:
'Услуги независимой оценки и судебной экспертизы в Сочи и Краснодаре.',
companyName: 'Компания ДИТРАСО',
phone: '+7 (900) 241-34-34',
- url: 'https://ocenka-sochi.ru',
ogImageTitle: 'Оценка и экспертиза',
ogImageDescription: 'Независимая оценка и судебная экспертиза',
};
-export const metadata: Metadata = metaInfo(metainfo);
+export async function generateMetadata(): Promise {
+ const h = await headers();
+ const referer = h.get('referer') ?? '';
+ const host = h.get('host') ?? '';
+ const proto = h.get('x-forwarded-proto') ?? '';
+ const path = referer ? new URL(referer).pathname : '';
+
+ const metainfoExtended = Object.assign({}, metainfo, {
+ host: `${proto}://${host}`,
+ path: path,
+ });
+
+ return metaInfo(metainfoExtended);
+}
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 0cb07ee..1f82cd9 100644
--- a/src/app/experts/borodin-vitalij-petrovich/page.tsx
+++ b/src/app/experts/borodin-vitalij-petrovich/page.tsx
@@ -1,19 +1,33 @@
import { ExpertBorodin } from '@/views';
import type { Metadata } from 'next';
import { metaInfo } from '@shared/lib';
+import { headers } from 'next/headers';
+import { TMetainfo } from '@shared/types/metainfo';
-const metainfo = {
+const metainfo: TMetainfo = {
title: 'Эксперт - Бородин Виталий Петрович',
description:
'Услуги независимой оценки и судебной экспертизы в Сочи и Краснодаре.',
companyName: 'Компания ДИТРАСО',
phone: '+7 (900) 241-34-34',
- url: 'https://ocenka-sochi.ru',
ogImageTitle: 'Оценка и экспертиза',
ogImageDescription: 'Независимая оценка и судебная экспертиза',
};
-export const metadata: Metadata = metaInfo(metainfo);
+export async function generateMetadata(): Promise {
+ const h = await headers();
+ const referer = h.get('referer') ?? '';
+ const host = h.get('host') ?? '';
+ const proto = h.get('x-forwarded-proto') ?? '';
+ const path = referer ? new URL(referer).pathname : '';
+
+ const metainfoExtended = Object.assign({}, metainfo, {
+ host: `${proto}://${host}`,
+ path: path,
+ });
+
+ return metaInfo(metainfoExtended);
+}
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 8432543..08230fb 100644
--- a/src/app/experts/gjulmamedov-javar-firmamed-ogly/page.tsx
+++ b/src/app/experts/gjulmamedov-javar-firmamed-ogly/page.tsx
@@ -1,19 +1,33 @@
import { ExpertGulmamedov } from '@/views';
import type { Metadata } from 'next';
import { metaInfo } from '@shared/lib';
+import { headers } from 'next/headers';
+import { TMetainfo } from '@shared/types/metainfo';
-const metainfo = {
+const metainfo: TMetainfo = {
title: 'Эксперт - Гюльмамедов Явар Фирмамед-оглы',
description:
'Услуги независимой оценки и судебной экспертизы в Сочи и Краснодаре.',
companyName: 'Компания ДИТРАСО',
phone: '+7 (900) 241-34-34',
- url: 'https://ocenka-sochi.ru',
ogImageTitle: 'Оценка и экспертиза',
ogImageDescription: 'Независимая оценка и судебная экспертиза',
};
-export const metadata: Metadata = metaInfo(metainfo);
+export async function generateMetadata(): Promise {
+ const h = await headers();
+ const referer = h.get('referer') ?? '';
+ const host = h.get('host') ?? '';
+ const proto = h.get('x-forwarded-proto') ?? '';
+ const path = referer ? new URL(referer).pathname : '';
+
+ const metainfoExtended = Object.assign({}, metainfo, {
+ host: `${proto}://${host}`,
+ path: path,
+ });
+
+ return metaInfo(metainfoExtended);
+}
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 9da6795..f4f7526 100644
--- a/src/app/experts/jancen-jana-nikolaevna/page.tsx
+++ b/src/app/experts/jancen-jana-nikolaevna/page.tsx
@@ -1,19 +1,33 @@
import { ExpertYancen } from '@/views';
import type { Metadata } from 'next';
import { metaInfo } from '@shared/lib';
+import { headers } from 'next/headers';
+import { TMetainfo } from '@shared/types/metainfo';
-const metainfo = {
+const metainfo: TMetainfo = {
title: 'Эксперт - Янцен Яна Николаевна',
description:
'Услуги независимой оценки и судебной экспертизы в Сочи и Краснодаре.',
companyName: 'Компания ДИТРАСО',
phone: '+7 (900) 241-34-34',
- url: 'https://ocenka-sochi.ru',
ogImageTitle: 'Оценка и экспертиза',
ogImageDescription: 'Независимая оценка и судебная экспертиза',
};
-export const metadata: Metadata = metaInfo(metainfo);
+export async function generateMetadata(): Promise {
+ const h = await headers();
+ const referer = h.get('referer') ?? '';
+ const host = h.get('host') ?? '';
+ const proto = h.get('x-forwarded-proto') ?? '';
+ const path = referer ? new URL(referer).pathname : '';
+
+ const metainfoExtended = Object.assign({}, metainfo, {
+ host: `${proto}://${host}`,
+ path: path,
+ });
+
+ return metaInfo(metainfoExtended);
+}
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 d3ab2f2..ae5f895 100644
--- a/src/app/experts/kaminskij-dmitrij-olegovich/page.tsx
+++ b/src/app/experts/kaminskij-dmitrij-olegovich/page.tsx
@@ -1,19 +1,33 @@
import { ExpertKaminskiy } from '@/views';
import type { Metadata } from 'next';
import { metaInfo } from '@shared/lib';
+import { headers } from 'next/headers';
+import { TMetainfo } from '@shared/types/metainfo';
-const metainfo = {
+const metainfo: TMetainfo = {
title: 'Эксперт - Каминский Дмитрий Олегович',
description:
'Услуги независимой оценки и судебной экспертизы в Сочи и Краснодаре.',
companyName: 'Компания ДИТРАСО',
phone: '+7 (900) 241-34-34',
- url: 'https://ocenka-sochi.ru',
ogImageTitle: 'Оценка и экспертиза',
ogImageDescription: 'Независимая оценка и судебная экспертиза',
};
-export const metadata: Metadata = metaInfo(metainfo);
+export async function generateMetadata(): Promise {
+ const h = await headers();
+ const referer = h.get('referer') ?? '';
+ const host = h.get('host') ?? '';
+ const proto = h.get('x-forwarded-proto') ?? '';
+ const path = referer ? new URL(referer).pathname : '';
+
+ const metainfoExtended = Object.assign({}, metainfo, {
+ host: `${proto}://${host}`,
+ path: path,
+ });
+
+ return metaInfo(metainfoExtended);
+}
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 79f2089..098ce47 100644
--- a/src/app/experts/kolodij-aleksandr-sergeevich/page.tsx
+++ b/src/app/experts/kolodij-aleksandr-sergeevich/page.tsx
@@ -1,19 +1,33 @@
import { ExpertKolodiy } from '@/views';
import type { Metadata } from 'next';
import { metaInfo } from '@shared/lib';
+import { headers } from 'next/headers';
+import { TMetainfo } from '@shared/types/metainfo';
-const metainfo = {
+const metainfo: TMetainfo = {
title: 'Эксперт - Колодий Александр Сергеевич',
description:
'Услуги независимой оценки и судебной экспертизы в Сочи и Краснодаре.',
companyName: 'Компания ДИТРАСО',
phone: '+7 (900) 241-34-34',
- url: 'https://ocenka-sochi.ru',
ogImageTitle: 'Оценка и экспертиза',
ogImageDescription: 'Независимая оценка и судебная экспертиза',
};
-export const metadata: Metadata = metaInfo(metainfo);
+export async function generateMetadata(): Promise {
+ const h = await headers();
+ const referer = h.get('referer') ?? '';
+ const host = h.get('host') ?? '';
+ const proto = h.get('x-forwarded-proto') ?? '';
+ const path = referer ? new URL(referer).pathname : '';
+
+ const metainfoExtended = Object.assign({}, metainfo, {
+ host: `${proto}://${host}`,
+ path: path,
+ });
+
+ return metaInfo(metainfoExtended);
+}
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 18d4db5..e4c2276 100644
--- a/src/app/experts/mikova-inna-georgievna/page.tsx
+++ b/src/app/experts/mikova-inna-georgievna/page.tsx
@@ -1,19 +1,33 @@
import { ExpertMikova } from '@/views';
import type { Metadata } from 'next';
import { metaInfo } from '@shared/lib';
+import { headers } from 'next/headers';
+import { TMetainfo } from '@shared/types/metainfo';
-const metainfo = {
+const metainfo: TMetainfo = {
title: 'Эксперт - Микова Инна Георгиевна',
description:
'Услуги независимой оценки и судебной экспертизы в Сочи и Краснодаре.',
companyName: 'Компания ДИТРАСО',
phone: '+7 (900) 241-34-34',
- url: 'https://ocenka-sochi.ru',
ogImageTitle: 'Оценка и экспертиза',
ogImageDescription: 'Независимая оценка и судебная экспертиза',
};
-export const metadata: Metadata = metaInfo(metainfo);
+export async function generateMetadata(): Promise {
+ const h = await headers();
+ const referer = h.get('referer') ?? '';
+ const host = h.get('host') ?? '';
+ const proto = h.get('x-forwarded-proto') ?? '';
+ const path = referer ? new URL(referer).pathname : '';
+
+ const metainfoExtended = Object.assign({}, metainfo, {
+ host: `${proto}://${host}`,
+ path: path,
+ });
+
+ return metaInfo(metainfoExtended);
+}
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 96239fe..1a8d71d 100644
--- a/src/app/experts/mitjaev-aleksej-aleksandrovich/page.tsx
+++ b/src/app/experts/mitjaev-aleksej-aleksandrovich/page.tsx
@@ -1,19 +1,33 @@
import { ExpertMityaev } from '@/views';
import type { Metadata } from 'next';
import { metaInfo } from '@shared/lib';
+import { headers } from 'next/headers';
+import { TMetainfo } from '@shared/types/metainfo';
-const metainfo = {
+const metainfo: TMetainfo = {
title: 'Эксперт - Митяев Алексей Александрович',
description:
'Услуги независимой оценки и судебной экспертизы в Сочи и Краснодаре.',
companyName: 'Компания ДИТРАСО',
phone: '+7 (900) 241-34-34',
- url: 'https://ocenka-sochi.ru',
ogImageTitle: 'Оценка и экспертиза',
ogImageDescription: 'Независимая оценка и судебная экспертиза',
};
-export const metadata: Metadata = metaInfo(metainfo);
+export async function generateMetadata(): Promise {
+ const h = await headers();
+ const referer = h.get('referer') ?? '';
+ const host = h.get('host') ?? '';
+ const proto = h.get('x-forwarded-proto') ?? '';
+ const path = referer ? new URL(referer).pathname : '';
+
+ const metainfoExtended = Object.assign({}, metainfo, {
+ host: `${proto}://${host}`,
+ path: path,
+ });
+
+ return metaInfo(metainfoExtended);
+}
export default function Page() {
return ;
diff --git a/src/app/experts/page.tsx b/src/app/experts/page.tsx
index e68c740..f2128e3 100644
--- a/src/app/experts/page.tsx
+++ b/src/app/experts/page.tsx
@@ -1,19 +1,33 @@
import { Experts } from '@/views';
import type { Metadata } from 'next';
import { metaInfo } from '@shared/lib';
+import { headers } from 'next/headers';
+import { TMetainfo } from '@shared/types/metainfo';
-const metainfo = {
+const metainfo: TMetainfo = {
title: 'Эксперты',
description:
'Услуги независимой оценки и судебной экспертизы в Сочи и Краснодаре.',
companyName: 'Компания ДИТРАСО',
phone: '+7 (900) 241-34-34',
- url: 'https://ocenka-sochi.ru',
ogImageTitle: 'Оценка и экспертиза',
ogImageDescription: 'Независимая оценка и судебная экспертиза',
};
-export const metadata: Metadata = metaInfo(metainfo);
+export async function generateMetadata(): Promise {
+ const h = await headers();
+ const referer = h.get('referer') ?? '';
+ const host = h.get('host') ?? '';
+ const proto = h.get('x-forwarded-proto') ?? '';
+ const path = referer ? new URL(referer).pathname : '';
+
+ const metainfoExtended = Object.assign({}, metainfo, {
+ host: `${proto}://${host}`,
+ path: path,
+ });
+
+ return metaInfo(metainfoExtended);
+}
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 13bc377..c4912e0 100644
--- a/src/app/experts/polinov-andrej-vladimirovich/page.tsx
+++ b/src/app/experts/polinov-andrej-vladimirovich/page.tsx
@@ -1,19 +1,33 @@
import { ExpertPolinov } from '@/views';
import type { Metadata } from 'next';
import { metaInfo } from '@shared/lib';
+import { headers } from 'next/headers';
+import { TMetainfo } from '@shared/types/metainfo';
-const metainfo = {
+const metainfo: TMetainfo = {
title: 'Эксперт - Полинов Андрей Владимирович',
description:
'Услуги независимой оценки и судебной экспертизы в Сочи и Краснодаре.',
companyName: 'Компания ДИТРАСО',
phone: '+7 (900) 241-34-34',
- url: 'https://ocenka-sochi.ru',
ogImageTitle: 'Оценка и экспертиза',
ogImageDescription: 'Независимая оценка и судебная экспертиза',
};
-export const metadata: Metadata = metaInfo(metainfo);
+export async function generateMetadata(): Promise {
+ const h = await headers();
+ const referer = h.get('referer') ?? '';
+ const host = h.get('host') ?? '';
+ const proto = h.get('x-forwarded-proto') ?? '';
+ const path = referer ? new URL(referer).pathname : '';
+
+ const metainfoExtended = Object.assign({}, metainfo, {
+ host: `${proto}://${host}`,
+ path: path,
+ });
+
+ return metaInfo(metainfoExtended);
+}
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 4aa32dd..b2f28f6 100644
--- a/src/app/experts/volkova-goncharova-tatjana-anatolevna/page.tsx
+++ b/src/app/experts/volkova-goncharova-tatjana-anatolevna/page.tsx
@@ -1,19 +1,33 @@
import { ExpertVolkovaGoncharova } from '@/views';
import type { Metadata } from 'next';
import { metaInfo } from '@shared/lib';
+import { headers } from 'next/headers';
+import { TMetainfo } from '@shared/types/metainfo';
-const metainfo = {
+const metainfo: TMetainfo = {
title: 'Эксперт - Волкова-Гончарова Татьяна Анатольевна',
description:
'Услуги независимой оценки и судебной экспертизы в Сочи и Краснодаре.',
companyName: 'Компания ДИТРАСО',
phone: '+7 (900) 241-34-34',
- url: 'https://ocenka-sochi.ru',
ogImageTitle: 'Оценка и экспертиза',
ogImageDescription: 'Независимая оценка и судебная экспертиза',
};
-export const metadata: Metadata = metaInfo(metainfo);
+export async function generateMetadata(): Promise {
+ const h = await headers();
+ const referer = h.get('referer') ?? '';
+ const host = h.get('host') ?? '';
+ const proto = h.get('x-forwarded-proto') ?? '';
+ const path = referer ? new URL(referer).pathname : '';
+
+ const metainfoExtended = Object.assign({}, metainfo, {
+ host: `${proto}://${host}`,
+ path: path,
+ });
+
+ return metaInfo(metainfoExtended);
+}
export default function Page() {
return ;
diff --git a/src/app/page.tsx b/src/app/page.tsx
index 9d0272c..1eb58ed 100644
--- a/src/app/page.tsx
+++ b/src/app/page.tsx
@@ -1,19 +1,33 @@
import { Home } from '@/views';
import type { Metadata } from 'next';
import { metaInfo } from '@shared/lib';
+import { headers } from 'next/headers';
+import { TMetainfo } from '@shared/types/metainfo';
-const metainfo = {
+const metainfo: TMetainfo = {
title: 'Независимая оценка и судебная экспертиза',
description:
'Услуги независимой оценки и судебной экспертизы в Сочи и Краснодаре.',
companyName: 'Компания ДИТРАСО',
phone: '+7 (900) 241-34-34',
- url: 'https://ocenka-sochi.ru',
ogImageTitle: 'Оценка и экспертиза',
ogImageDescription: 'Независимая оценка и судебная экспертиза',
};
-export const metadata: Metadata = metaInfo(metainfo);
+export async function generateMetadata(): Promise {
+ const h = await headers();
+ const referer = h.get('referer') ?? '';
+ const host = h.get('host') ?? '';
+ const proto = h.get('x-forwarded-proto') ?? '';
+ const path = referer ? new URL(referer).pathname : '';
+
+ const metainfoExtended = Object.assign({}, metainfo, {
+ host: `${proto}://${host}`,
+ path: path,
+ });
+
+ return metaInfo(metainfoExtended);
+}
export default function HomePage() {
return ;
diff --git a/src/app/privacy-policy/page.tsx b/src/app/privacy-policy/page.tsx
index 4dad5d2..928ddd3 100644
--- a/src/app/privacy-policy/page.tsx
+++ b/src/app/privacy-policy/page.tsx
@@ -1,19 +1,33 @@
import { PrivacyPolicy } from '@/views';
import type { Metadata } from 'next';
import { metaInfo } from '@shared/lib';
+import { headers } from 'next/headers';
+import { TMetainfo } from '@shared/types/metainfo';
-const metainfo = {
+const metainfo: TMetainfo = {
title: 'Независимая оценка и судебная экспертиза',
description:
'Услуги независимой оценки и судебной экспертизы в Сочи и Краснодаре.',
companyName: 'Компания ДИТРАСО',
phone: '+7 (900) 241-34-34',
- url: 'https://ocenka-sochi.ru',
ogImageTitle: 'Оценка и экспертиза',
ogImageDescription: 'Независимая оценка и судебная экспертиза',
};
-export const metadata: Metadata = metaInfo(metainfo);
+export async function generateMetadata(): Promise {
+ const h = await headers();
+ const referer = h.get('referer') ?? '';
+ const host = h.get('host') ?? '';
+ const proto = h.get('x-forwarded-proto') ?? '';
+ const path = referer ? new URL(referer).pathname : '';
+
+ const metainfoExtended = Object.assign({}, metainfo, {
+ host: `${proto}://${host}`,
+ path: path,
+ });
+
+ return metaInfo(metainfoExtended);
+}
export default function Page() {
return ;
diff --git a/src/app/user-agreement/page.tsx b/src/app/user-agreement/page.tsx
index 06b3497..f8cf7a1 100644
--- a/src/app/user-agreement/page.tsx
+++ b/src/app/user-agreement/page.tsx
@@ -1,19 +1,33 @@
import { UserAgreement } from '@/views';
import type { Metadata } from 'next';
import { metaInfo } from '@shared/lib';
+import { headers } from 'next/headers';
+import { TMetainfo } from '@shared/types/metainfo';
-const metainfo = {
+const metainfo: TMetainfo = {
title: 'Независимая оценка и судебная экспертиза',
description:
'Услуги независимой оценки и судебной экспертизы в Сочи и Краснодаре.',
companyName: 'Компания ДИТРАСО',
phone: '+7 (900) 241-34-34',
- url: 'https://ocenka-sochi.ru',
ogImageTitle: 'Оценка и экспертиза',
ogImageDescription: 'Независимая оценка и судебная экспертиза',
};
-export const metadata: Metadata = metaInfo(metainfo);
+export async function generateMetadata(): Promise {
+ const h = await headers();
+ const referer = h.get('referer') ?? '';
+ const host = h.get('host') ?? '';
+ const proto = h.get('x-forwarded-proto') ?? '';
+ const path = referer ? new URL(referer).pathname : '';
+
+ const metainfoExtended = Object.assign({}, metainfo, {
+ host: `${proto}://${host}`,
+ path: path,
+ });
+
+ return metaInfo(metainfoExtended);
+}
export default function Page() {
return ;
diff --git a/src/shared/lib/metaInfo/metaInfo.ts b/src/shared/lib/metaInfo/metaInfo.ts
index 5720f08..c3e2ab0 100644
--- a/src/shared/lib/metaInfo/metaInfo.ts
+++ b/src/shared/lib/metaInfo/metaInfo.ts
@@ -5,7 +5,8 @@ type TMetaInfo = {
description: string;
companyName: string;
phone: string;
- url: string;
+ host: string;
+ path: string;
ogImageTitle: string;
ogImageDescription: string;
width?: number;
@@ -20,7 +21,8 @@ function metaInfo({ ...props }: TMetaInfo): Metadata {
description,
companyName,
phone,
- url,
+ host,
+ path = '',
ogImageTitle,
ogImageDescription,
width = 600,
@@ -35,11 +37,10 @@ function metaInfo({ ...props }: TMetaInfo): Metadata {
openGraph: {
title: title,
description: description,
- url: url,
+ url: `${host}${path}`,
images: [
{
- url: `${url}/api/og/?title=${ogImageTitle}&description=${ogImageDescription}`,
- secureUrl: `${url}/api/og/?title=${ogImageTitle}&description=${ogImageDescription}`,
+ url: `${host}/api/og/?title=${ogImageTitle}&description=${ogImageDescription}`,
width: width,
height: height,
alt: `${title} - ${companyName}`,
@@ -56,7 +57,7 @@ function metaInfo({ ...props }: TMetaInfo): Metadata {
creator: creator,
images: [
{
- url: `${url}/api/og/?title=${ogImageTitle}&description=${ogImageDescription}`,
+ url: `${host}/api/og/?title=${ogImageTitle}&description=${ogImageDescription}`,
width: width,
height: height,
alt: `${title} - ${companyName}`,
diff --git a/src/shared/types/metainfo.ts b/src/shared/types/metainfo.ts
new file mode 100644
index 0000000..48f05ff
--- /dev/null
+++ b/src/shared/types/metainfo.ts
@@ -0,0 +1,8 @@
+export type TMetainfo = {
+ title: string;
+ description: string;
+ companyName: string;
+ phone: string;
+ ogImageTitle: string;
+ ogImageDescription: string;
+};