From ecfe610f6380e41e4b0ed8a510953c3c02a74659 Mon Sep 17 00:00:00 2001 From: RedrockJS Date: Wed, 18 Jun 2025 12:11:21 +0300 Subject: [PATCH] feat: add user agreement --- src/app/page.tsx | 6 +- src/app/privacy-policy/page.tsx | 6 +- src/app/user-agreement/page.tsx | 9 +++ src/core/constants/privacy-policy.ts | 5 ++ src/views/home/index.ts | 2 +- src/views/policy/index.ts | 1 - src/views/privacy-policy/index.ts | 1 + .../styles.module.scss} | 5 +- .../ui/policy.tsx => privacy-policy/ui.tsx} | 9 +-- src/views/user-agreement/index.ts | 1 + src/views/user-agreement/styles.module.scss | 75 +++++++++++++++++++ src/views/user-agreement/ui.tsx | 69 +++++++++++++++++ 12 files changed, 171 insertions(+), 18 deletions(-) create mode 100644 src/app/user-agreement/page.tsx create mode 100644 src/core/constants/privacy-policy.ts delete mode 100644 src/views/policy/index.ts create mode 100644 src/views/privacy-policy/index.ts rename src/views/{policy/ui/policy.module.scss => privacy-policy/styles.module.scss} (97%) rename src/views/{policy/ui/policy.tsx => privacy-policy/ui.tsx} (99%) create mode 100644 src/views/user-agreement/index.ts create mode 100644 src/views/user-agreement/styles.module.scss create mode 100644 src/views/user-agreement/ui.tsx diff --git a/src/app/page.tsx b/src/app/page.tsx index de0ec89..40cb571 100644 --- a/src/app/page.tsx +++ b/src/app/page.tsx @@ -1,9 +1,9 @@ -import { HomePage } from '@views/home'; +import { Home } from '@views/home'; -export default function Home() { +export default function HomePage() { return (
- +
); } diff --git a/src/app/privacy-policy/page.tsx b/src/app/privacy-policy/page.tsx index 61819fd..5346dc2 100644 --- a/src/app/privacy-policy/page.tsx +++ b/src/app/privacy-policy/page.tsx @@ -1,9 +1,9 @@ -import { PolicyPage } from '@views/policy'; +import { PrivacyPolicy } from '@views/privacy-policy'; -export default function PrivacyPolicy() { +export default function PrivacyPolicyPage() { return (
- +
); } diff --git a/src/app/user-agreement/page.tsx b/src/app/user-agreement/page.tsx new file mode 100644 index 0000000..3fdd265 --- /dev/null +++ b/src/app/user-agreement/page.tsx @@ -0,0 +1,9 @@ +import { UserAgreement } from '@views/user-agreement'; + +export default function UserAgreementPage() { + return ( +
+ +
+ ); +} diff --git a/src/core/constants/privacy-policy.ts b/src/core/constants/privacy-policy.ts new file mode 100644 index 0000000..c76d67c --- /dev/null +++ b/src/core/constants/privacy-policy.ts @@ -0,0 +1,5 @@ +const COMPANY = '«ООО ДИТРАСО»'; +const WEB = 'https://www.fire-expert.ru/'; +const EMAIL = 'spo-71@yandex.ru'; + +export { COMPANY, WEB, EMAIL }; diff --git a/src/views/home/index.ts b/src/views/home/index.ts index 370eca4..e187952 100644 --- a/src/views/home/index.ts +++ b/src/views/home/index.ts @@ -1 +1 @@ -export { default as HomePage } from './ui/home'; +export { default as Home } from './ui/home'; diff --git a/src/views/policy/index.ts b/src/views/policy/index.ts deleted file mode 100644 index 235a691..0000000 --- a/src/views/policy/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default as PolicyPage } from './ui/policy'; diff --git a/src/views/privacy-policy/index.ts b/src/views/privacy-policy/index.ts new file mode 100644 index 0000000..5545539 --- /dev/null +++ b/src/views/privacy-policy/index.ts @@ -0,0 +1 @@ +export { default as PrivacyPolicy } from './ui'; diff --git a/src/views/policy/ui/policy.module.scss b/src/views/privacy-policy/styles.module.scss similarity index 97% rename from src/views/policy/ui/policy.module.scss rename to src/views/privacy-policy/styles.module.scss index 195b567..3758c56 100644 --- a/src/views/policy/ui/policy.module.scss +++ b/src/views/privacy-policy/styles.module.scss @@ -55,6 +55,7 @@ font-size: rem(14px); line-height: 130%; color: $color-text; + margin: 8px 0; @include iftablet{ font-size: rem(16px); @@ -97,8 +98,4 @@ top: rem(-20px); right: rem(-150px); } - - //& button { - // border-radius: 10px; - //} } \ No newline at end of file diff --git a/src/views/policy/ui/policy.tsx b/src/views/privacy-policy/ui.tsx similarity index 99% rename from src/views/policy/ui/policy.tsx rename to src/views/privacy-policy/ui.tsx index d722b77..7338ce1 100644 --- a/src/views/policy/ui/policy.tsx +++ b/src/views/privacy-policy/ui.tsx @@ -1,12 +1,9 @@ -import s from './policy.module.scss'; +import s from './styles.module.scss'; import Link from 'next/link'; import { Button } from '@shared/ui'; +import { COMPANY, EMAIL, WEB } from '@core/constants/privacy-policy'; -const COMPANY = '«ООО ДИТРАСО»'; -const WEB = 'https://www.fire-expert.ru/'; -const EMAIL = 'spo-71@yandex.ru'; - -export default function PolicyPage() { +export default function PrivacyPolicy() { return (
diff --git a/src/views/user-agreement/index.ts b/src/views/user-agreement/index.ts new file mode 100644 index 0000000..f83ad78 --- /dev/null +++ b/src/views/user-agreement/index.ts @@ -0,0 +1 @@ +export { default as UserAgreement } from './ui'; diff --git a/src/views/user-agreement/styles.module.scss b/src/views/user-agreement/styles.module.scss new file mode 100644 index 0000000..6c016e2 --- /dev/null +++ b/src/views/user-agreement/styles.module.scss @@ -0,0 +1,75 @@ +.Agreement { + position: relative; + margin: rem(60px) auto rem(20px); + width: rem(360px); + background: #EEE; + padding: rem(20px); + border-radius: rem(28px); + + @include iftablet{ + width: rem(600px); + margin: rem(40px) auto rem(20px); + padding: rem(20px); + } + + @include iflaptop{ + width: rem(800px); + margin: rem(60px) auto rem(20px); + padding: rem(60px); + } + + @include ifdesktop{ + width: rem(1200px); + margin: rem(60px) auto rem(20px); + padding: rem(60px); + } + + h2 { + font-family: $font-open-sans; + font-weight: $font-regular; + font-size: rem(20px); + line-height: 130%; + color: $color-text; + + @include iftablet{ + font-size: rem(24px); + } + } + + p { + font-family: $font-open-sans; + font-weight: $font-regular; + font-size: rem(14px); + line-height: 130%; + color: $color-text; + margin: 8px 0; + + @include iftablet{ + font-size: rem(16px); + } + } +} + +.FloatBtn { + position: fixed; + top: rem(10px); + right: 50%; + transform: translateX(50%); + + @include iftablet{ + position: absolute; + top: rem(-20px); + right: rem(-100px); + transform: none; + } + + @include iflaptop{ + top: rem(-20px); + right: rem(-100px); + } + + @include ifdesktop{ + top: rem(-20px); + right: rem(-150px); + } +} \ No newline at end of file diff --git a/src/views/user-agreement/ui.tsx b/src/views/user-agreement/ui.tsx new file mode 100644 index 0000000..b6d6bbf --- /dev/null +++ b/src/views/user-agreement/ui.tsx @@ -0,0 +1,69 @@ +import s from './styles.module.scss'; +import Link from 'next/link'; +import { Button } from '@shared/ui'; +import { COMPANY, EMAIL, WEB } from '@core/constants/privacy-policy'; + +export default function UserAgreement() { + return ( +
+ + + + +

Согласие на обработку персональных данных {COMPANY}

+

+ Настоящим Я, в соответствии со ст. 9 ФЗ от 27.07.2006 N 152-ФЗ «О + персональных данных», предоставляю {COMPANY} (ИНН 2320219187, ОГРН + 1142366003010, 354000, Краснодарский край, г.Сочи, ул.Труда, д.15, офис + 64, e-mail: {EMAIL}) согласие на обработку моих персональных данных: + фамилии, имени, отчества, номера телефона, адреса электронной почты, + года, месяца, даты рождения, почтового адреса. +

+

+ Цель обработки персональных данных: обратный звонок субъекту + персональных данных и связь с ним, предоставление информации, оказание + услуг, отправка информационных, рекламно-информационных сообщений. +

+

+ Категории субъектов персональных данных: Пользователи сайта, которые + оставляют заявку на обратный звонок, оказание услуг. +

+

+ Способы обработки персональных данных: сбор, запись, систематизация, + накопление, хранение, уточнение (обновление, изменение), извлечение, + использование, передача (распространение, предоставление, доступ), + обезличивание, блокирование, удаление, уничтожение персональных данных, + в том числе в информационных системах персональных данных с + использованием средств автоматизации или без использования таких + средств. +

+

+ Порядок уничтожения персональных данных при достижении цели их обработки + или при наступлении иных законных оснований: лицо, ответственное за + обработку персональных данных, производит удаление данных методом + перезаписи (замена всех единиц хранения информации на «0») с + составлением акта об уничтожении персональных данных. +

+

+ Передача персональных данных может быть осуществлена при необходимости в + случаях, предусмотренных российским законодательством. +

+

+ Настоящее согласие действует со дня его предоставления до дня отзыва + путём его направления на адрес электронной почты: {EMAIL} или путем + письменного обращения по юридическому адресу: 354000, Краснодарский + край, г.Сочи, ул.Труда, д.15, офис 64 +

+

+ Я согласен/согласна квалифицировать в качестве своей простой электронной + подписи под настоящим Согласием и под Политикой обработки персональных + данных выполнение мною следующего действия на сайте: {WEB}: простановка + мною символа в чек-боксе (в поле для ввода) рядом с текстом: «Я + ознакомлен(-а) с Политикой обработки персональных данных и даю свое + согласие на обработку персональных данных». +

+
+ ); +}