refactor: update MDX link handling and improve document formatting

- Removed the custom link component in MDX and replaced it with standard anchor tags for external links.
- Updated offer and privacy policy documents to use environment variables for dynamic URLs instead of custom components.
- Improved formatting for better readability in the offer and privacy policy sections.
This commit is contained in:
vchikalkin 2025-10-14 16:16:30 +03:00
parent 2df80c90f6
commit 6a0d34d37b
3 changed files with 13 additions and 42 deletions

View File

@ -1,4 +1,3 @@
import { OfferLink, SupportLink } from '@/components/documents/links';
import { env } from '@/config/env';
export const metadata = {
@ -12,7 +11,7 @@ export const metadata = {
#### 1. Термины и определения
1.1. Оферта — настоящий документ, постоянно размещенный в сети Интернет по адресу <OfferLink />.
1.1. Оферта — настоящий документ, постоянно размещенный в сети Интернет по адресу <a href={env.OFFER_URL}>{env.OFFER_URL}</a>.
1.2. Акцепт — полное и безоговорочное принятие условий Оферты Пользователем путем оплаты доступа через встроенный платежный бот ЮKassa в Telegram.
@ -63,15 +62,15 @@ export const metadata = {
- предоставлять достоверную информацию при оплате и использовании Сервиса;
- при добавлении контактов других лиц (например, клиентов, мастеров) гарантировать, что у него есть согласие этих лиц на передачу и обработку их персональных данных в рамках Сервиса;
5.2. Администрация обязуется:
5.2. Администрация обязуется:
- обеспечивать бесперебойную работу Сервиса, за исключением периодов технического обслуживания;
- обрабатывать персональные данные Пользователей в соответствии с Политикой конфиденциальности;
- принимать обращения и запросы Пользователей по вопросам работы Сервиса. 6. Ответственность сторон;
6.1. Сервис предоставляется «как есть». Администрация не несёт ответственности за временные сбои, потерю данных или недоступность Сервиса, возникшие по причинам, не зависящим от неё.
6.1. Сервис предоставляется «как есть». Администрация не несёт ответственности за временные сбои, потерю данных или недоступность Сервиса, возникшие по причинам, не зависящим от неё.
6.2. Пользователь несёт полную ответственность за корректность совершаемых платежей и действий, совершаемых через свой Telegram-аккаунт.
6.2. Пользователь несёт полную ответственность за корректность совершаемых платежей и действий, совершаемых через свой Telegram-аккаунт.
#### 7. Обработка персональных данных
@ -99,4 +98,4 @@ export const metadata = {
Если у Вас есть вопросы по настоящему договору публичной оферты персональных данных, пожалуйста, свяжитесь с Разработчиком:
- **Telegram:** <SupportLink/>
- **Telegram:** <a href={env.SUPPORT_TELEGRAM_URL}>{env.SUPPORT_TELEGRAM_URL}</a>

View File

@ -1,4 +1,3 @@
import { SupportLink } from '@/components/documents/links';
import { env } from '@/config/env';
export const metadata = {
@ -134,4 +133,4 @@ export const metadata = {
Если у Вас есть вопросы по Политике конфиденциальности или запросы в отношении персональных данных, пожалуйста, свяжитесь с Разработчиком:
- **Telegram:** <SupportLink/>
- **Telegram:** <a href={env.SUPPORT_TELEGRAM_URL}>{env.SUPPORT_TELEGRAM_URL}</a>

View File

@ -1,39 +1,12 @@
import { type MDXComponents } from 'mdx/types';
import Link from 'next/link';
/**
* Этот объект определяет, какие React-компоненты
* будут использоваться для рендеринга MDX-тегов (<a>, <h1>, <p> и т.д.)
* и какие кастомные компоненты будут доступны прямо в MDX.
*/
const components: MDXComponents = {
// 🔗 Заменяем стандартные <a> на <Link> Next.js
a: ({ children, href = '', ...props }) => {
// внутренние ссылки → через <Link>
if (href.startsWith('/')) {
return (
<Link href={href} {...props}>
{children}
</Link>
);
}
// This file allows you to provide custom React components
// to be used in MDX files. You can import and use any
// React component you want, including inline styles,
// components from other libraries, and more.
// внешние ссылки → target="_blank"
return (
<a href={href} rel="noopener noreferrer" target="_blank" {...props}>
{children}
</a>
);
},
};
const components = {} satisfies MDXComponents;
/**
* Эта функция вызывается автоматически при рендере MDX.
* Через неё Next.js App Router объединяет глобальные и локальные MDX-компоненты.
*/
export function useMDXComponents(componentsArgument: MDXComponents): MDXComponents {
return {
...components,
...componentsArgument, // позволяет переопределять внутри MDX
};
export function useMDXComponents(): MDXComponents {
return components;
}