Compare commits
3 Commits
13d85436a7
...
8765c1d74d
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
8765c1d74d | ||
|
|
7560b1702f | ||
|
|
b5813e3b53 |
6
apps/web/app/(documents)/offer/layout.tsx
Normal file
6
apps/web/app/(documents)/offer/layout.tsx
Normal file
@ -0,0 +1,6 @@
|
||||
import { DocumentsLayout } from '@/components/documents/layout';
|
||||
import { type PropsWithChildren } from 'react';
|
||||
|
||||
export default function Layout({ children }: Readonly<PropsWithChildren>) {
|
||||
return <DocumentsLayout title="Публичная оферта">{children}</DocumentsLayout>;
|
||||
}
|
||||
102
apps/web/app/(documents)/offer/page.mdx
Normal file
102
apps/web/app/(documents)/offer/page.mdx
Normal file
@ -0,0 +1,102 @@
|
||||
import { OfferLink, SupportLink } from '@/components/documents/links';
|
||||
import { env } from '@/config/env';
|
||||
|
||||
export const metadata = {
|
||||
title: 'Публичная оферта',
|
||||
description: 'Публичная оферта бота / мини-приложения «Запишись.онлайн» (@zapishis_online_bot)',
|
||||
};
|
||||
|
||||
### Договор-оферта на использование сервиса «Запишись.онлайн» (@zapishis_online_bot)
|
||||
|
||||
Настоящий документ является публичной офертой в соответствии с пунктом 2 статьи 437 Гражданского кодекса Российской Федерации и представляет собой предложение индивидуального предпринимателя (самозанятого) — далее именуемого «Администрация», заключить Договор на использование Сервиса (далее – «Договор», «Оферта») с любым физическим лицом, принявшим условия настоящей Оферты (далее – «Пользователь»).
|
||||
|
||||
#### 1. Термины и определения
|
||||
|
||||
1.1. Оферта — настоящий документ, постоянно размещенный в сети Интернет по адресу <OfferLink />.
|
||||
|
||||
1.2. Акцепт — полное и безоговорочное принятие условий Оферты Пользователем путем оплаты доступа через встроенный платежный бот ЮKassa в Telegram.
|
||||
|
||||
1.3. Сервис — Telegram-бот и мини-приложение, позволяющее пользователям создавать и принимать заказы, управлять расписанием и взаимодействовать друг с другом без необходимости регистрации.
|
||||
|
||||
1.4. Администрация — самозанятое лицо, являющееся разработчиком и правообладателем Сервиса.
|
||||
|
||||
1.5. Пользователь — любое физическое лицо, использующее Сервис в личных или профессиональных целях.
|
||||
|
||||
1.6. Доступ — право использования функционала Сервиса на определённый оплаченный период (например, неделя, месяц, год).
|
||||
|
||||
1.7. Оплата — денежные средства, перечисленные Пользователем через платёжный бот ЮKassa в Telegram.
|
||||
|
||||
#### 2. Акцепт оферты и заключение договора
|
||||
|
||||
2.1. Акцептом настоящей Оферты считается оплата Пользователем доступа к Сервису любым доступным способом.
|
||||
|
||||
2.2. С момента совершения оплаты Пользователь считается заключившим Договор с Администрацией на условиях, изложенных в настоящей Оферте.
|
||||
|
||||
2.3. Пользователь подтверждает, что ему понятны все условия настоящей Оферты и он принимает их без ограничений.
|
||||
|
||||
#### 3. Предмет договора
|
||||
|
||||
3.1. Администрация предоставляет Пользователю неисключительное право (доступ) на использование функционала Сервиса в пределах оплаченного периода времени.
|
||||
|
||||
3.2. Сервис предоставляется в онлайн-формате через Telegram-бота без установки дополнительного программного обеспечения.
|
||||
|
||||
3.3. Пользователь получает право использовать функционал Сервиса в личных целях, в том числе для организации и планирования заказов, встреч и тренировок.
|
||||
|
||||
#### 4. Порядок оплаты и использование
|
||||
|
||||
4.1. Оплата производится через встроенные инструменты Telegram-бота с использованием платёжной системы ЮKassa.
|
||||
|
||||
4.2. Комиссия платёжной системы включена в итоговую стоимость. Администрация не взимает дополнительных платежей.
|
||||
|
||||
4.3. Доступ активируется автоматически после успешного подтверждения оплаты.
|
||||
|
||||
4.4. Пользователь может продлить доступ путём повторной оплаты. Автоматическое продление не применяется.
|
||||
|
||||
4.5. Возврат денежных средств возможен только в случае технических ошибок, по письменному обращению на адрес поддержки.
|
||||
|
||||
#### 5. Права и обязанности сторон
|
||||
|
||||
5.1. Пользователь обязуется:
|
||||
|
||||
- не использовать Сервис в противоправных целях;
|
||||
- не вмешиваться в работу Сервиса и не предпринимать действий, направленных на нарушение его функционирования;
|
||||
- предоставлять достоверную информацию при оплате и использовании Сервиса;
|
||||
- при добавлении контактов других лиц (например, клиентов, мастеров) гарантировать, что у него есть согласие этих лиц на передачу и обработку их персональных данных в рамках Сервиса;
|
||||
|
||||
5.2. Администрация обязуется:
|
||||
|
||||
- обеспечивать бесперебойную работу Сервиса, за исключением периодов технического обслуживания;
|
||||
- обрабатывать персональные данные Пользователей в соответствии с Политикой конфиденциальности;
|
||||
- принимать обращения и запросы Пользователей по вопросам работы Сервиса. 6. Ответственность сторон;
|
||||
|
||||
6.1. Сервис предоставляется «как есть». Администрация не несёт ответственности за временные сбои, потерю данных или недоступность Сервиса, возникшие по причинам, не зависящим от неё.
|
||||
|
||||
6.2. Пользователь несёт полную ответственность за корректность совершаемых платежей и действий, совершаемых через свой Telegram-аккаунт.
|
||||
|
||||
#### 7. Обработка персональных данных
|
||||
|
||||
7.1. Администрация обрабатывает персональные данные Пользователя в соответствии с Федеральным законом №152-ФЗ «О персональных данных» и Политикой конфиденциальности.
|
||||
|
||||
7.2. Использование Сервиса означает согласие Пользователя на обработку его персональных данных.
|
||||
|
||||
#### 8. Срок действия и расторжение договора
|
||||
|
||||
8.1. Договор вступает в силу с момента оплаты доступа и действует в течение оплаченного периода.
|
||||
|
||||
8.2. Пользователь может прекратить использование Сервиса в любое время без возврата оплаченных средств.
|
||||
|
||||
8.3. Администрация вправе приостановить доступ в случае нарушения Пользователем условий настоящей Оферты.
|
||||
|
||||
#### 9. Заключительные положения
|
||||
|
||||
9.1. Настоящий Договор регулируется законодательством Российской Федерации.
|
||||
|
||||
9.2. Все споры и разногласия решаются путём переговоров, а при недостижении соглашения — в судебном порядке по месту нахождения Администрации.
|
||||
|
||||
9.3. Администрация оставляет за собой право изменять условия Оферты с размещением новой редакции на сайте.
|
||||
|
||||
#### 10. Контакты
|
||||
|
||||
Если у Вас есть вопросы по настоящему договору публичной оферты персональных данных, пожалуйста, свяжитесь с Разработчиком:
|
||||
|
||||
- **Telegram:** <SupportLink/>
|
||||
@ -1,242 +0,0 @@
|
||||
import { Container } from '@/components/layout';
|
||||
import { PageHeader } from '@/components/navigation';
|
||||
import { env } from '@/config/env';
|
||||
|
||||
export default function OfferPage() {
|
||||
return (
|
||||
<>
|
||||
<PageHeader title="Публичная оферта" />
|
||||
<Container className="prose prose-neutral dark:prose-invert">
|
||||
<section className="mx-auto space-y-8">
|
||||
<h1 className="text-2xl font-bold">
|
||||
Договор-оферта на использование сервиса «Запишись.онлайн» (@zapishis_online_bot)
|
||||
</h1>
|
||||
<p className="mt-4">
|
||||
Настоящий документ является публичной офертой в соответствии с пунктом 2 статьи 437
|
||||
Гражданского кодекса Российской Федерации и представляет собой предложение
|
||||
индивидуального предпринимателя (самозанятого) — далее именуемого «Администрация»,
|
||||
заключить Договор на использование Сервиса (далее – «Договор», «Оферта») с любым
|
||||
физическим лицом, принявшим условия настоящей Оферты (далее – «Пользователь»).
|
||||
</p>
|
||||
|
||||
<div className="my-6 border-t border-gray-300 dark:border-gray-600" />
|
||||
|
||||
<h2 className="text-2xl font-semibold">1. Термины и определения</h2>
|
||||
<div className="space-y-3">
|
||||
<p>
|
||||
<strong>1.1.</strong> Оферта — настоящий документ, постоянно размещенный в сети
|
||||
Интернет по адресу <a href="#">{env.OFFER_URL}</a>.
|
||||
</p>
|
||||
<p>
|
||||
<strong>1.2.</strong> Акцепт — полное и безоговорочное принятие условий Оферты
|
||||
Пользователем путем оплаты доступа через встроенный платежный бот ЮKassa в Telegram.
|
||||
</p>
|
||||
<p>
|
||||
<strong>1.3.</strong> Сервис — Telegram-бот и мини-приложение, позволяющее
|
||||
пользователям создавать и принимать заказы, управлять расписанием и взаимодействовать
|
||||
друг с другом без необходимости регистрации.
|
||||
</p>
|
||||
<p>
|
||||
<strong>1.4.</strong> Администрация — самозанятое лицо, являющееся разработчиком и
|
||||
правообладателем Сервиса.
|
||||
</p>
|
||||
<p>
|
||||
<strong>1.5.</strong> Пользователь — любое физическое лицо, использующее Сервис в
|
||||
личных или профессиональных целях.
|
||||
</p>
|
||||
<p>
|
||||
<strong>1.6.</strong> Доступ — право использования функционала Сервиса на определённый
|
||||
оплаченный период (например, неделя, месяц, год).
|
||||
</p>
|
||||
<p>
|
||||
<strong>1.7.</strong> Оплата — денежные средства, перечисленные Пользователем через
|
||||
платёжный бот ЮKassa в Telegram.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div className="my-6 border-t border-gray-300 dark:border-gray-600" />
|
||||
|
||||
<h2 className="text-2xl font-semibold">2. Акцепт оферты и заключение договора</h2>
|
||||
<div className="space-y-3">
|
||||
<p>
|
||||
<strong>2.1.</strong> Акцептом настоящей Оферты считается оплата Пользователем доступа
|
||||
к Сервису любым доступным способом.
|
||||
</p>
|
||||
<p>
|
||||
<strong>2.2.</strong> С момента совершения оплаты Пользователь считается заключившим
|
||||
Договор с Администрацией на условиях, изложенных в настоящей Оферте.
|
||||
</p>
|
||||
<p>
|
||||
<strong>2.3.</strong> Пользователь подтверждает, что ему понятны все условия настоящей
|
||||
Оферты и он принимает их без ограничений.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div className="my-6 border-t border-gray-300 dark:border-gray-600" />
|
||||
|
||||
<h2 className="text-2xl font-semibold">3. Предмет договора</h2>
|
||||
<div className="space-y-3">
|
||||
<p>
|
||||
<strong>3.1.</strong> Администрация предоставляет Пользователю неисключительное право
|
||||
(доступ) на использование функционала Сервиса в пределах оплаченного периода времени.
|
||||
</p>
|
||||
<p>
|
||||
<strong>3.2.</strong> Сервис предоставляется в онлайн-формате через Telegram-бота без
|
||||
установки дополнительного программного обеспечения.
|
||||
</p>
|
||||
<p>
|
||||
<strong>3.3.</strong> Пользователь получает право использовать функционал Сервиса в
|
||||
личных целях, в том числе для организации и планирования заказов, встреч и тренировок.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div className="my-6 border-t border-gray-300 dark:border-gray-600" />
|
||||
|
||||
<h2 className="text-2xl font-semibold">4. Порядок оплаты и использование</h2>
|
||||
<div className="space-y-3">
|
||||
<p>
|
||||
<strong>4.1.</strong> Оплата производится через встроенные инструменты Telegram-бота с
|
||||
использованием платёжной системы ЮKassa.
|
||||
</p>
|
||||
<p>
|
||||
<strong>4.2.</strong> Комиссия платёжной системы включена в итоговую стоимость.
|
||||
Администрация не взимает дополнительных платежей.
|
||||
</p>
|
||||
<p>
|
||||
<strong>4.3.</strong> Доступ активируется автоматически после успешного подтверждения
|
||||
оплаты.
|
||||
</p>
|
||||
<p>
|
||||
<strong>4.4.</strong> Пользователь может продлить доступ путём повторной оплаты.
|
||||
Автоматическое продление не применяется.
|
||||
</p>
|
||||
<p>
|
||||
<strong>4.5.</strong> Возврат денежных средств возможен только в случае технических
|
||||
ошибок, по письменному обращению на адрес поддержки.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div className="my-6 border-t border-gray-300 dark:border-gray-600" />
|
||||
|
||||
<h2 className="text-2xl font-semibold">5. Права и обязанности сторон</h2>
|
||||
<div className="space-y-3">
|
||||
<p>
|
||||
<strong>5.1.</strong> Пользователь обязуется:
|
||||
</p>
|
||||
<ul className="list-inside list-disc space-y-1">
|
||||
<li>не использовать Сервис в противоправных целях;</li>
|
||||
<li>
|
||||
не вмешиваться в работу Сервиса и не предпринимать действий, направленных на
|
||||
нарушение его функционирования;
|
||||
</li>
|
||||
<li>предоставлять достоверную информацию при оплате и использовании Сервиса.</li>
|
||||
<li>
|
||||
при добавлении контактов других лиц (например, клиентов, мастеров) гарантировать,
|
||||
что у него есть согласие этих лиц на передачу и обработку их персональных данных в
|
||||
рамках Сервиса.
|
||||
</li>
|
||||
</ul>
|
||||
<p>
|
||||
<strong>5.2.</strong> Администрация обязуется:
|
||||
</p>
|
||||
<ul className="list-inside list-disc space-y-1">
|
||||
<li>
|
||||
обеспечивать бесперебойную работу Сервиса, за исключением периодов технического
|
||||
обслуживания;
|
||||
</li>
|
||||
<li>
|
||||
обрабатывать персональные данные Пользователей в соответствии с{' '}
|
||||
<a href="/privacy">Политикой конфиденциальности</a>;
|
||||
</li>
|
||||
<li>принимать обращения и запросы Пользователей по вопросам работы Сервиса.</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div className="my-6 border-t border-gray-300 dark:border-gray-600" />
|
||||
|
||||
<h2 className="text-2xl font-semibold">6. Ответственность сторон</h2>
|
||||
<div className="space-y-3">
|
||||
<p>
|
||||
<strong>6.1.</strong> Сервис предоставляется «как есть». Администрация не несёт
|
||||
ответственности за временные сбои, потерю данных или недоступность Сервиса, возникшие
|
||||
по причинам, не зависящим от неё.
|
||||
</p>
|
||||
<p>
|
||||
<strong>6.2.</strong> Пользователь несёт полную ответственность за корректность
|
||||
совершаемых платежей и действий, совершаемых через свой Telegram-аккаунт.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div className="my-6 border-t border-gray-300 dark:border-gray-600" />
|
||||
|
||||
<h2 className="text-2xl font-semibold">7. Обработка персональных данных</h2>
|
||||
<div className="space-y-3">
|
||||
<p>
|
||||
<strong>7.1.</strong> Администрация обрабатывает персональные данные Пользователя в
|
||||
соответствии с Федеральным законом №152-ФЗ «О персональных данных» и{' '}
|
||||
<a href="/privacy">Политикой конфиденциальности</a>.
|
||||
</p>
|
||||
<p>
|
||||
<strong>7.2.</strong> Использование Сервиса означает согласие Пользователя на
|
||||
обработку его персональных данных.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div className="my-6 border-t border-gray-300 dark:border-gray-600" />
|
||||
|
||||
<h2 className="text-2xl font-semibold">8. Срок действия и расторжение договора</h2>
|
||||
<div className="space-y-3">
|
||||
<p>
|
||||
<strong>8.1.</strong> Договор вступает в силу с момента оплаты доступа и действует в
|
||||
течение оплаченного периода.
|
||||
</p>
|
||||
<p>
|
||||
<strong>8.2.</strong> Пользователь может прекратить использование Сервиса в любое
|
||||
время без возврата оплаченных средств.
|
||||
</p>
|
||||
<p>
|
||||
<strong>8.3.</strong> Администрация вправе приостановить доступ в случае нарушения
|
||||
Пользователем условий настоящей Оферты.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div className="my-6 border-t border-gray-300 dark:border-gray-600" />
|
||||
|
||||
<h2 className="text-2xl font-semibold">9. Заключительные положения</h2>
|
||||
<div className="space-y-3">
|
||||
<p>
|
||||
<strong>9.1.</strong> Настоящий Договор регулируется законодательством Российской
|
||||
Федерации.
|
||||
</p>
|
||||
<p>
|
||||
<strong>9.2.</strong> Все споры и разногласия решаются путём переговоров, а при
|
||||
недостижении соглашения — в судебном порядке по месту нахождения Администрации.
|
||||
</p>
|
||||
<p>
|
||||
<strong>9.3.</strong> Администрация оставляет за собой право изменять условия Оферты с
|
||||
размещением новой редакции на сайте.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div className="my-6 border-t border-gray-300 dark:border-gray-600" />
|
||||
|
||||
<h2 className="text-2xl font-semibold">10. Контакты</h2>
|
||||
<p>
|
||||
Если у Вас есть вопросы по настоящему договору публичной оферты персональных данных,
|
||||
пожалуйста, свяжитесь с Разработчиком:
|
||||
</p>
|
||||
<ul>
|
||||
<li>
|
||||
Telegram:{' '}
|
||||
<strong>
|
||||
<a href={env.SUPPORT_TELEGRAM_URL}>{env.SUPPORT_TELEGRAM_URL}</a>
|
||||
</strong>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<div className="h-10" />
|
||||
</section>
|
||||
</Container>
|
||||
</>
|
||||
);
|
||||
}
|
||||
@ -1,4 +1,4 @@
|
||||
import { SupportLink } from '@/components/documents/support-link';
|
||||
import { SupportLink } from '@/components/documents/links';
|
||||
import { env } from '@/config/env';
|
||||
|
||||
export const metadata = {
|
||||
@ -7,9 +7,9 @@ export const metadata = {
|
||||
'Политика конфиденциальности бота / мини-приложения «Запишись.онлайн» (@zapishis_online_bot)',
|
||||
};
|
||||
|
||||
# Политика конфиденциальности бота / мини-приложения «Запишись.онлайн» (@zapishis_online_bot)
|
||||
### Политика конфиденциальности бота / мини-приложения «Запишись.онлайн» (@zapishis_online_bot)
|
||||
|
||||
## 1. Термины и определения
|
||||
#### 1. Термины и определения
|
||||
|
||||
1. **Telegram** – Telegram Messenger Inc. (платформа, на которой работает бот и мини-приложение).
|
||||
2. **Платформа** – экосистема ботов и мини-приложений Telegram.
|
||||
@ -18,7 +18,7 @@ export const metadata = {
|
||||
5. **Пользователь** – лицо, использующее Сторонний сервис через свою учетную запись Telegram (далее — «Вы»).
|
||||
6. **Политика** – настоящий документ, регулирующий отношения между Разработчиком и Пользователем в части сбора и обработки персональных данных.
|
||||
|
||||
## 2. Общие положения
|
||||
#### 2. Общие положения
|
||||
|
||||
2.1. Настоящая Политика регулирует исключительно отношения между Разработчиком и Пользователем. Она не заменяет и не изменяет Политику конфиденциальности Telegram: [https://telegram.org/privacy](https://telegram.org/privacy).
|
||||
|
||||
@ -28,7 +28,7 @@ export const metadata = {
|
||||
|
||||
2.4. Если Вы не согласны с условиями Политики — прекратите использование Сервиса.
|
||||
|
||||
## 3. Отказ от ответственности
|
||||
#### 3. Отказ от ответственности
|
||||
|
||||
3.1. Сторонний сервис является независимым приложением и не поддерживается, не одобряется и не аффилирован с Telegram (за исключением использования API и инфраструктуры Telegram).
|
||||
|
||||
@ -43,7 +43,7 @@ export const metadata = {
|
||||
|
||||
3.6. Любая информация, которую Вы делаете общедоступной самостоятельно (через профиль Telegram, публичные сообщения и т.п.), может стать доступна другим пользователям и не подпадает под защиту настоящей Политики в части конфиденциальности этой общедоступной информации.
|
||||
|
||||
## 4. Сбор персональных данных
|
||||
#### 4. Сбор персональных данных
|
||||
|
||||
4.1. Telegram по умолчанию предоставляет сторонним сервисам ограниченный набор данных о Пользователе — подробнее: [https://telegram.org/privacy#6-bot-messages](https://telegram.org/privacy#6-bot-messages).
|
||||
|
||||
@ -55,7 +55,7 @@ export const metadata = {
|
||||
|
||||
4.5. Пользователь может передавать данные третьих лиц (например, контактные данные клиентов или мастеров) для использования в Сервисе. При этом пользователь гарантирует, что эти лица дали согласие на обработку их персональных данных в рамках Сервиса.
|
||||
|
||||
## 5. Какие данные мы собираем и как используем
|
||||
#### 5. Какие данные мы собираем и как используем
|
||||
|
||||
5.1. Разработчик запрашивает, собирает и обрабатывает только те данные, которые необходимы для корректной работы функций Сервиса, в частности:
|
||||
|
||||
@ -74,7 +74,7 @@ export const metadata = {
|
||||
|
||||
> **Важно:** детальные платёжные данные (реквизиты карт и т.д.) не хранятся у Разработчика — их обрабатывает платёжный оператор (ЮKassa) и Telegram-платежный бот.
|
||||
|
||||
## 6. Передача данных третьим лицам
|
||||
#### 6. Передача данных третьим лицам
|
||||
|
||||
6.1. Разработчик не передаёт персональные данные третьим лицам, за исключением следующих случаев:
|
||||
|
||||
@ -85,7 +85,7 @@ export const metadata = {
|
||||
|
||||
6.2. Разработчик не продаёт и не передаёт персональные данные для рекламных целей третьим лицам без Вашего отдельного согласия.
|
||||
|
||||
## 7. Защита и хранение данных
|
||||
#### 7. Защита и хранение данных
|
||||
|
||||
7.1. Разработчик применяет разумные технические и организационные меры для защиты персональных данных (использование надежного VPS, ограничения доступа, резервное копирование и т.п.).
|
||||
|
||||
@ -93,7 +93,7 @@ export const metadata = {
|
||||
|
||||
7.3. Данные хранятся на серверах, указанных Разработчиком. Если используются внешние сервисы/облачные хранилища — это будет указано в соответствующих местах Политики или сообщения при сборе данных.
|
||||
|
||||
## 8. Права и обязанности сторон
|
||||
#### 8. Права и обязанности сторон
|
||||
|
||||
8.1. Права Разработчика:
|
||||
|
||||
@ -120,17 +120,17 @@ export const metadata = {
|
||||
- предоставлять точную и актуальную информацию;
|
||||
- не использовать Сервис в нарушении законодательства и условий Telegram.
|
||||
|
||||
## 9. Реклама и использование данных для аналитики
|
||||
#### 9. Реклама и использование данных для аналитики
|
||||
|
||||
9.1. На текущем этапе Разработчик не использует персональные данные для демонстрации таргетированной рекламы третьих лиц без явного согласия Пользователя.
|
||||
|
||||
9.2. Разработчик может собирать агрегированную (анонимную) статистику использования Сервиса для улучшения функционала.
|
||||
|
||||
## 10. Изменения Политики
|
||||
#### 10. Изменения Политики
|
||||
|
||||
10.1. Разработчик вправе вносить изменения в настоящую Политику. Все изменения публикуются на этой странице и вступают в силу с момента публикации.
|
||||
|
||||
## 11. Контакты
|
||||
#### 11. Контакты
|
||||
|
||||
Если у Вас есть вопросы по Политике конфиденциальности или запросы в отношении персональных данных, пожалуйста, свяжитесь с Разработчиком:
|
||||
|
||||
|
||||
@ -1,5 +1,13 @@
|
||||
import { env } from '@/config/env';
|
||||
|
||||
export function OfferLink() {
|
||||
return (
|
||||
<a href={env.OFFER_URL} rel="noreferrer" target="_blank">
|
||||
{env.OFFER_URL}
|
||||
</a>
|
||||
);
|
||||
}
|
||||
|
||||
export function SupportLink() {
|
||||
return (
|
||||
<a href={env.SUPPORT_TELEGRAM_URL} rel="noreferrer" target="_blank">
|
||||
@ -1,5 +1,4 @@
|
||||
import { type MDXComponents } from 'mdx/types';
|
||||
import Image from 'next/image';
|
||||
import Link from 'next/link';
|
||||
|
||||
/**
|
||||
@ -26,21 +25,6 @@ const components: MDXComponents = {
|
||||
</a>
|
||||
);
|
||||
},
|
||||
|
||||
h1: ({ children }) => <h1 className="text-2xl font-bold">{children}</h1>,
|
||||
|
||||
h2: ({ children }) => <h2 className="text-2xl font-bold">{children}</h2>,
|
||||
|
||||
// 🖼 Обработка картинок через next/image
|
||||
img: (props) => (
|
||||
<Image
|
||||
{...props}
|
||||
alt={props.alt || ''}
|
||||
className="my-4 rounded-xl"
|
||||
height={props.height ? Number(props.height) : 600}
|
||||
width={props.width ? Number(props.width) : 800}
|
||||
/>
|
||||
),
|
||||
};
|
||||
|
||||
/**
|
||||
|
||||
@ -2,10 +2,8 @@
|
||||
'use client';
|
||||
|
||||
import { useBackButton, useClientOnce, useDidMount, useViewport } from '@/hooks/telegram';
|
||||
import { setLocale } from '@/utils/i18n/locale';
|
||||
import { init } from '@/utils/telegram/init';
|
||||
import { initData, useSignal } from '@telegram-apps/sdk-react';
|
||||
import { type PropsWithChildren, useEffect } from 'react';
|
||||
import { type PropsWithChildren } from 'react';
|
||||
|
||||
export function TelegramProvider(props: Readonly<PropsWithChildren>) {
|
||||
// Unfortunately, Telegram Mini Apps does not allow us to use all features of
|
||||
@ -31,12 +29,5 @@ function RootInner({ children }: PropsWithChildren) {
|
||||
useViewport();
|
||||
useBackButton();
|
||||
|
||||
const initDataUser = useSignal(initData.user);
|
||||
|
||||
// Set the user locale.
|
||||
useEffect(() => {
|
||||
if (initDataUser) setLocale(initDataUser.languageCode);
|
||||
}, [initDataUser]);
|
||||
|
||||
return children;
|
||||
}
|
||||
|
||||
@ -1,6 +0,0 @@
|
||||
{
|
||||
"i18n": {
|
||||
"header": "Application supports i18n",
|
||||
"footer": "You can select a different language from the dropdown menu."
|
||||
}
|
||||
}
|
||||
@ -1,6 +0,0 @@
|
||||
{
|
||||
"i18n": {
|
||||
"header": "Поддержка i18n",
|
||||
"footer": "Вы можете выбрать другой язык в выпадающем меню."
|
||||
}
|
||||
}
|
||||
@ -40,6 +40,7 @@
|
||||
"@radix-ui/react-select": "^2.1.4",
|
||||
"@radix-ui/react-slot": "^1.1.1",
|
||||
"@repo/typescript-config": "workspace:*",
|
||||
"@tailwindcss/typography": "^0.5.19",
|
||||
"@types/react": "catalog:",
|
||||
"autoprefixer": "catalog:",
|
||||
"class-variance-authority": "^0.7.1",
|
||||
|
||||
@ -1,3 +1,4 @@
|
||||
import typography from '@tailwindcss/typography';
|
||||
import { type Config } from 'tailwindcss';
|
||||
import tailwindcssAnimate from 'tailwindcss-animate';
|
||||
|
||||
@ -10,7 +11,7 @@ const config = {
|
||||
'../../packages/ui/src/**/*.{ts,tsx}',
|
||||
],
|
||||
darkMode: ['class'],
|
||||
plugins: [tailwindcssAnimate],
|
||||
plugins: [tailwindcssAnimate, typography],
|
||||
prefix: '',
|
||||
theme: {
|
||||
container: {
|
||||
|
||||
40
pnpm-lock.yaml
generated
40
pnpm-lock.yaml
generated
@ -11,7 +11,7 @@ catalogs:
|
||||
version: 3.13.8
|
||||
'@types/node':
|
||||
specifier: ^20
|
||||
version: 20.19.4
|
||||
version: 20.17.8
|
||||
'@types/react':
|
||||
specifier: ^19.1.11
|
||||
version: 19.1.11
|
||||
@ -23,7 +23,7 @@ catalogs:
|
||||
version: 2.2.2
|
||||
autoprefixer:
|
||||
specifier: ^10.4.20
|
||||
version: 10.4.21
|
||||
version: 10.4.20
|
||||
dayjs:
|
||||
specifier: ^1.11.3
|
||||
version: 1.11.13
|
||||
@ -35,7 +35,7 @@ catalogs:
|
||||
version: 9.21.0
|
||||
graphql:
|
||||
specifier: ^16.9.0
|
||||
version: 16.11.0
|
||||
version: 16.9.0
|
||||
husky:
|
||||
specifier: ^9.1.7
|
||||
version: 9.1.7
|
||||
@ -44,13 +44,13 @@ catalogs:
|
||||
version: 9.0.2
|
||||
lint-staged:
|
||||
specifier: ^15.2.10
|
||||
version: 15.5.2
|
||||
version: 15.2.10
|
||||
lucide-react:
|
||||
specifier: ^0.462.0
|
||||
version: 0.462.0
|
||||
postcss:
|
||||
specifier: ^8.4.49
|
||||
version: 8.5.6
|
||||
version: 8.4.49
|
||||
postcss-load-config:
|
||||
specifier: ^6.0.1
|
||||
version: 6.0.1
|
||||
@ -68,19 +68,19 @@ catalogs:
|
||||
version: 19.1.1
|
||||
tailwindcss:
|
||||
specifier: ^3.4.15
|
||||
version: 3.4.17
|
||||
version: 3.4.15
|
||||
typescript:
|
||||
specifier: ^5.7
|
||||
version: 5.8.3
|
||||
version: 5.7.2
|
||||
vite-tsconfig-paths:
|
||||
specifier: ^5.1.4
|
||||
version: 5.1.4
|
||||
vitest:
|
||||
specifier: ^2.1.8
|
||||
version: 2.1.9
|
||||
version: 2.1.8
|
||||
zod:
|
||||
specifier: ^3.24.1
|
||||
version: 3.25.71
|
||||
version: 3.24.1
|
||||
|
||||
importers:
|
||||
|
||||
@ -521,6 +521,9 @@ importers:
|
||||
'@repo/typescript-config':
|
||||
specifier: workspace:*
|
||||
version: link:../typescript-config
|
||||
'@tailwindcss/typography':
|
||||
specifier: ^0.5.19
|
||||
version: 0.5.19(tailwindcss@3.4.17(ts-node@10.9.2(@types/node@24.0.10)(typescript@5.8.3)))
|
||||
'@types/react':
|
||||
specifier: 'catalog:'
|
||||
version: 19.1.11
|
||||
@ -3139,6 +3142,11 @@ packages:
|
||||
'@swc/helpers@0.5.15':
|
||||
resolution: {integrity: sha512-JQ5TuMi45Owi4/BIMAJBoSQoOJu12oOk/gADqlcUL9JEdHB8vyjUSsxqeNXnmXHjYKMi2WcYtezGEEhqUI/E2g==}
|
||||
|
||||
'@tailwindcss/typography@0.5.19':
|
||||
resolution: {integrity: sha512-w31dd8HOx3k9vPtcQh5QHP9GwKcgbMp87j58qi6xgiBnFFtKEAgCWnDw4qUT8aHwkCp8bKvb/KGKWWHedP0AAg==}
|
||||
peerDependencies:
|
||||
tailwindcss: '>=3.0.0 || insiders || >=4.0.0-alpha.20 || >=4.0.0-beta.1'
|
||||
|
||||
'@tanstack/query-core@5.64.1':
|
||||
resolution: {integrity: sha512-978Wx4Wl4UJZbmvU/rkaM9cQtXXrbhK0lsz/UZhYIbyKYA8E4LdomTwyh2GHZ4oU0BKKoDH4YlKk2VscCUgNmg==}
|
||||
|
||||
@ -7149,6 +7157,10 @@ packages:
|
||||
peerDependencies:
|
||||
postcss: ^8.2.14
|
||||
|
||||
postcss-selector-parser@6.0.10:
|
||||
resolution: {integrity: sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==}
|
||||
engines: {node: '>=4'}
|
||||
|
||||
postcss-selector-parser@6.1.2:
|
||||
resolution: {integrity: sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==}
|
||||
engines: {node: '>=4'}
|
||||
@ -11724,6 +11736,11 @@ snapshots:
|
||||
dependencies:
|
||||
tslib: 2.8.1
|
||||
|
||||
'@tailwindcss/typography@0.5.19(tailwindcss@3.4.17(ts-node@10.9.2(@types/node@24.0.10)(typescript@5.8.3)))':
|
||||
dependencies:
|
||||
postcss-selector-parser: 6.0.10
|
||||
tailwindcss: 3.4.17(ts-node@10.9.2(@types/node@24.0.10)(typescript@5.8.3))
|
||||
|
||||
'@tanstack/query-core@5.64.1': {}
|
||||
|
||||
'@tanstack/react-query@5.64.1(react@19.1.1)':
|
||||
@ -16936,6 +16953,11 @@ snapshots:
|
||||
postcss: 8.5.6
|
||||
postcss-selector-parser: 6.1.2
|
||||
|
||||
postcss-selector-parser@6.0.10:
|
||||
dependencies:
|
||||
cssesc: 3.0.0
|
||||
util-deprecate: 1.0.2
|
||||
|
||||
postcss-selector-parser@6.1.2:
|
||||
dependencies:
|
||||
cssesc: 3.0.0
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user