fix: update metatags gen #2

Merged
redrockjs merged 1 commits from dev into main 2025-12-11 12:13:54 +00:00
18 changed files with 319 additions and 82 deletions

80
.idea/workspace.xml generated
View File

@@ -5,8 +5,24 @@
</component>
<component name="ChangeListManager">
<list default="true" id="2a96f817-9dc2-4f3c-893a-c4974c750774" name="Changes" comment="">
<change beforePath="$PROJECT_DIR$/package-lock.json" beforeDir="false" afterPath="$PROJECT_DIR$/package-lock.json" afterDir="false" />
<change beforePath="$PROJECT_DIR$/package.json" beforeDir="false" afterPath="$PROJECT_DIR$/package.json" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/shared/types/metainfo.ts" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/app/contacts/page.tsx" beforeDir="false" afterPath="$PROJECT_DIR$/src/app/contacts/page.tsx" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/app/cookies/page.tsx" beforeDir="false" afterPath="$PROJECT_DIR$/src/app/cookies/page.tsx" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/app/experts/borodin-vitalij-petrovich/page.tsx" beforeDir="false" afterPath="$PROJECT_DIR$/src/app/experts/borodin-vitalij-petrovich/page.tsx" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/app/experts/gjulmamedov-javar-firmamed-ogly/page.tsx" beforeDir="false" afterPath="$PROJECT_DIR$/src/app/experts/gjulmamedov-javar-firmamed-ogly/page.tsx" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/app/experts/jancen-jana-nikolaevna/page.tsx" beforeDir="false" afterPath="$PROJECT_DIR$/src/app/experts/jancen-jana-nikolaevna/page.tsx" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/app/experts/kaminskij-dmitrij-olegovich/page.tsx" beforeDir="false" afterPath="$PROJECT_DIR$/src/app/experts/kaminskij-dmitrij-olegovich/page.tsx" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/app/experts/kolodij-aleksandr-sergeevich/page.tsx" beforeDir="false" afterPath="$PROJECT_DIR$/src/app/experts/kolodij-aleksandr-sergeevich/page.tsx" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/app/experts/mikova-inna-georgievna/page.tsx" beforeDir="false" afterPath="$PROJECT_DIR$/src/app/experts/mikova-inna-georgievna/page.tsx" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/app/experts/mitjaev-aleksej-aleksandrovich/page.tsx" beforeDir="false" afterPath="$PROJECT_DIR$/src/app/experts/mitjaev-aleksej-aleksandrovich/page.tsx" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/app/experts/page.tsx" beforeDir="false" afterPath="$PROJECT_DIR$/src/app/experts/page.tsx" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/app/experts/polinov-andrej-vladimirovich/page.tsx" beforeDir="false" afterPath="$PROJECT_DIR$/src/app/experts/polinov-andrej-vladimirovich/page.tsx" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/app/experts/volkova-goncharova-tatjana-anatolevna/page.tsx" beforeDir="false" afterPath="$PROJECT_DIR$/src/app/experts/volkova-goncharova-tatjana-anatolevna/page.tsx" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/app/page.tsx" beforeDir="false" afterPath="$PROJECT_DIR$/src/app/page.tsx" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/app/privacy-policy/page.tsx" beforeDir="false" afterPath="$PROJECT_DIR$/src/app/privacy-policy/page.tsx" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/app/user-agreement/page.tsx" beforeDir="false" afterPath="$PROJECT_DIR$/src/app/user-agreement/page.tsx" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/shared/lib/metaInfo/metaInfo.ts" beforeDir="false" afterPath="$PROJECT_DIR$/src/shared/lib/metaInfo/metaInfo.ts" afterDir="false" />
</list>
<option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" />
@@ -14,7 +30,7 @@
<option name="LAST_RESOLUTION" value="IGNORE" />
</component>
<component name="DarkyenusTimeTracker">
<option name="totalTimeSeconds" value="226258" />
<option name="totalTimeSeconds" value="234128" />
<option name="gitIntegration" value="true" />
<option name="naggedAbout" value="1" />
</component>
@@ -42,37 +58,38 @@
<option name="hideEmptyMiddlePackages" value="true" />
<option name="showLibraryContents" value="true" />
</component>
<component name="PropertiesComponent"><![CDATA[{
"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"
<component name="PropertiesComponent">{
&quot;keyToString&quot;: {
&quot;ASKED_SHARE_PROJECT_CONFIGURATION_FILES&quot;: &quot;true&quot;,
&quot;ModuleVcsDetector.initialDetectionPerformed&quot;: &quot;true&quot;,
&quot;RunOnceActivity.ShowReadmeOnStart&quot;: &quot;true&quot;,
&quot;RunOnceActivity.TerminalTabsStorage.copyFrom.TerminalArrangementManager.252&quot;: &quot;true&quot;,
&quot;RunOnceActivity.git.unshallow&quot;: &quot;true&quot;,
&quot;RunOnceActivity.typescript.service.memoryLimit.init&quot;: &quot;true&quot;,
&quot;SHARE_PROJECT_CONFIGURATION_FILES&quot;: &quot;true&quot;,
&quot;com.intellij.ml.llm.matterhorn.ej.ui.settings.DefaultModelSelectionForGA.v1&quot;: &quot;true&quot;,
&quot;git-widget-placeholder&quot;: &quot;dev&quot;,
&quot;ignore.virus.scanning.warn.message&quot;: &quot;true&quot;,
&quot;js.debugger.nextJs.config.created.client&quot;: &quot;true&quot;,
&quot;js.debugger.nextJs.config.created.server&quot;: &quot;true&quot;,
&quot;junie.onboarding.icon.badge.shown&quot;: &quot;true&quot;,
&quot;list.type.of.created.stylesheet&quot;: &quot;SCSS&quot;,
&quot;node.js.detected.package.eslint&quot;: &quot;true&quot;,
&quot;node.js.detected.package.tslint&quot;: &quot;true&quot;,
&quot;node.js.selected.package.eslint&quot;: &quot;(autodetect)&quot;,
&quot;node.js.selected.package.tslint&quot;: &quot;(autodetect)&quot;,
&quot;nodejs_package_manager_path&quot;: &quot;npm&quot;,
&quot;npm.Next.js: server-side.executor&quot;: &quot;Run&quot;,
&quot;prettierjs.PrettierConfiguration.Package&quot;: &quot;C:\\dev-personal\\ocenka-web\\node_modules\\prettier&quot;,
&quot;settings.editor.selected.configurable&quot;: &quot;terminal&quot;,
&quot;to.speed.mode.migration.done&quot;: &quot;true&quot;,
&quot;ts.external.directory.path&quot;: &quot;C:\\dev-personal\\ocenka-web\\node_modules\\typescript\\lib&quot;,
&quot;vue.rearranger.settings.migration&quot;: &quot;true&quot;
}
}]]></component>
}</component>
<component name="RecentsManager">
<key name="MoveFile.RECENT_KEYS">
<recent name="C:\dev-personal\ocenka-web" />
<recent name="C:\dev-personal\ocenka-web\public\images" />
<recent name="C:\dev-personal\ocenka-web\src\widgets" />
<recent name="C:\dev-personal\ocenka-web\src\widgets\sidebar" />
@@ -119,6 +136,7 @@
<workItem from="1765196704782" duration="4455000" />
<workItem from="1765279298291" duration="3813000" />
<workItem from="1765435962765" duration="4004000" />
<workItem from="1765453944194" duration="1010000" />
</task>
<servers />
</component>

View File

@@ -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<Metadata> {
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 <Contacts />;

View File

@@ -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<Metadata> {
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 <Cookie />;

View File

@@ -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<Metadata> {
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 <ExpertBorodin />;

View File

@@ -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<Metadata> {
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 <ExpertGulmamedov />;

View File

@@ -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<Metadata> {
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 <ExpertYancen />;

View File

@@ -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<Metadata> {
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 <ExpertKaminskiy />;

View File

@@ -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<Metadata> {
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 <ExpertKolodiy />;

View File

@@ -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<Metadata> {
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 <ExpertMikova />;

View File

@@ -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<Metadata> {
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 <ExpertMityaev />;

View File

@@ -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<Metadata> {
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 <Experts />;

View File

@@ -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<Metadata> {
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 <ExpertPolinov />;

View File

@@ -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<Metadata> {
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 <ExpertVolkovaGoncharova />;

View File

@@ -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<Metadata> {
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 <Home />;

View File

@@ -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<Metadata> {
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 <PrivacyPolicy />;

View File

@@ -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<Metadata> {
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 <UserAgreement />;

View File

@@ -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}`,

View File

@@ -0,0 +1,8 @@
export type TMetainfo = {
title: string;
description: string;
companyName: string;
phone: string;
ogImageTitle: string;
ogImageDescription: string;
};