diff --git a/messages/en.json b/messages/en.json index 7a8e82b..13aea61 100644 --- a/messages/en.json +++ b/messages/en.json @@ -45,6 +45,8 @@ "navigation": { "home": "Home", "about_us": "About Us", + "privacy": "Privacy Policy", + "support": "Support", "statistics": "Statistics", "news": "News", "volunteers": "Volunteers", diff --git a/messages/kg.json b/messages/kg.json index 613a808..affba90 100644 --- a/messages/kg.json +++ b/messages/kg.json @@ -45,6 +45,8 @@ "navigation": { "home": "Башкы бет", "about_us": "Биз тууралуу", + "privacy": "Купуялык саясаты", + "support": "Колдоо", "statistics": "Статистика", "news": "Жаңылыктар", "volunteers": "Волонтёрлер", diff --git a/messages/ru.json b/messages/ru.json index c619727..84a2591 100644 --- a/messages/ru.json +++ b/messages/ru.json @@ -45,6 +45,8 @@ "navigation": { "home": "Главная", "about_us": "О нас", + "privacy": "Политика конфиденциальности", + "support": "Поддержка", "statistics": "Статистика", "news": "Новости", "volunteers": "Волонтеры", diff --git a/src/app/[locale]/privacy/Privacy.scss b/src/app/[locale]/privacy/Privacy.scss new file mode 100644 index 0000000..e49a72a --- /dev/null +++ b/src/app/[locale]/privacy/Privacy.scss @@ -0,0 +1,102 @@ +.privacy { + display: flex; + flex-direction: column; + + h2 { + margin-bottom: 40px; + width: fit-content; + } + + &__image { + align-self: center; + margin-bottom: 65px; + border-radius: 12px; + max-width: 1072px; + width: 100%; + height: 598px; + object-fit: cover; + } + + h3 { + margin-bottom: 10px; + font-size: 24px; + font-weight: 500; + line-height: 29px; + color: rgb(62, 50, 50); + } + + &__descriptions { + display: flex; + flex-direction: column; + gap: 20px; + + p { + font-size: 20px; + font-weight: 400; + line-height: 34px; + color: rgb(62, 50, 50); + } + + ul { + display: flex; + flex-direction: column; + gap: 20px; + li { + font-size: 20px; + font-weight: 400; + line-height: 34px; + color: rgb(62, 50, 50); + } + } + } + + &__author { + margin-top: 30px; + } +} + +@media screen and (max-width: 768px) { + .privacy { + h2 { + margin-bottom: 30px; + } + + img { + margin-bottom: 30px; + height: 392px; + } + + h3 { + font-size: 20px; + line-height: 24px; + } + + &__descriptions { + gap: 16px; + + p { + font-size: 18px; + line-height: 34px; + } + } + } +} + +@media screen and (max-width: 550px) { + .privacy { + h2 { + margin-bottom: 20px; + } + + img { + height: 231px; + } + + &__descriptions { + p { + font-size: 16px; + line-height: 140%; + } + } + } +} diff --git a/src/app/[locale]/privacy/assets/header.svg b/src/app/[locale]/privacy/assets/header.svg new file mode 100644 index 0000000..0600736 --- /dev/null +++ b/src/app/[locale]/privacy/assets/header.svg @@ -0,0 +1,12 @@ + + + Created with Pixso. + + + + + + + + + diff --git a/src/app/[locale]/privacy/page.tsx b/src/app/[locale]/privacy/page.tsx new file mode 100644 index 0000000..28d9c72 --- /dev/null +++ b/src/app/[locale]/privacy/page.tsx @@ -0,0 +1,114 @@ +import Typography from "@/shared/ui/components/Typography/Typography"; +import "./Privacy.scss"; +import Image from "next/image"; +import header from "./assets/header.svg"; +import { Metadata } from "next"; +import BreadCrumbs from "@/features/BreadCrumbs/BreadCrumbs"; +import { apiInstance } from "@/shared/config/apiConfig"; +import { IMetatag } from "@/shared/types/metatag-type"; + +export async function generateMetadata(): Promise { + const data = await apiInstance + .get("/metatags/") + .then((res) => res.data) + .catch((e) => console.log(e)); + + if (!data) + return { + title: "KG ROAD | О нас", + description: + "Transparency International - Кыргызстан - филиал международной организации Transparency International в Кыргызской Республике.", + openGraph: { + title: "KG ROAD | О нас", + description: + "Transparency International - Кыргызстан - филиал международной организации Transparency International в Кыргызской Республике.", + }, + }; + + const metadata = data.filter((tag) => tag.page === "privacy")[0]; + if (!metadata) { + return { + title: "KG ROAD | О нас", + description: + "Transparency International - Кыргызстан - филиал международной организации Transparency International в Кыргызской Республике.", + openGraph: { + title: "KG ROAD | О нас", + description: + "Transparency International - Кыргызстан - филиал международной организации Transparency International в Кыргызской Республике.", + }, + }; + } + + return { + title: `KG ROAD | ${metadata.title}`, + description: metadata.description, + keywords: metadata.keywords.split(","), + openGraph: { + title: `KG ROAD | ${metadata.title}`, + description: metadata.description, + type: "website", + }, + }; +} + +const Privacy = () => { + return ( +
+ + Политика конфиденциальности +
+
    +
  1. Общие положения
  2. +
+

Настоящие Положение о политике конфиденциальности определяет порядок обработки и защиты информации о физических лицах (далее — Пользователи), пользующихся почтовой рассылкой, формой обратной связи сайта, электронными почтовыми адресами, расположенными на доменном имени https://kgroad.org/ (далее — Сайт).

+

Мы разработали Политику Конфиденциальности, которая описывает, как мы осуществляем обработку персональных данных — любые действия (операции) или совокупность действий (операций), совершаемых с использованием средств автоматизации или без использования таких средств с персональными данными, включая сбор, запись, систематизацию, накопление, хранение, уточнение (обновление, изменение), извлечение, использование, передачу (распространение, предоставление, доступ), обезличивание, блокирование, удаление, уничтожение персональных данных.

+

Отношения, связанные с обработкой персональных данных и информации о пользователях Сайта, регулируются настоящим Положением.

+

Настоящая Политика Конфиденциальности регулирует любой вид обработки персональных данных и информации личного характера (любой информации, позволяющей установить личность, и любой иной информации, связанной с этим) о физических лицах, которые являются пользователями Сайта.

+

Настоящая Политика распространяется на обработку личных, персональных данных, собранных любыми средствами, как активными, так и пассивными, как через Интернет, так и без его использования, от лиц, находящихся в любой точке мира.

+

2. Сбор персональных данных

+

Целью обработки персональных данных является выполнение обязательств Оператора перед Пользователями в отношении использования Сайта и его сервисов.

+

Обработка персональных данных пользователей осуществляется с согласия субъекта персональных данных на обработку его персональных данных.

+

Под персональными данными понимается любая информация, относящаяся к прямо или косвенно определенному или определяемому физическому лицу (субъекту персональных данных) и которая может быть использована для идентификации определенного лица либо связи с ним.

+

Мы можем запросить у Вас имя, фамилию, отчество и адрес электронной почты для того, чтобы включить Вас в почтовую рассылку с Вашего согласия, а также для того, чтобы ответить Вам, если Вы обратились к нам через форму обратной связи на Сайте.

+

3. Хранение и использование персональных данных

+

Персональные данные Пользователей хранятся исключительно на электронных носителях и обрабатываются с использованием автоматизированных систем.

+

КАК МЫ ИСПОЛЬЗУЕМ ВАШУ ПЕРСОНАЛЬНУЮ ИНФОРМАЦИЮ

+

Собираемые нами персональные данные позволяют направлять Вам по электронной почте уведомления о новостях, выходе новых антикоррупционных расследований и различных событиях. Также ваши персональные данные могут быть использованы при ответе на ваше обращение, направленное через форму обратной связи или на наш адрес электронной почты, расположенные на Сайте. Если Вы не желаете быть включенным в наш список рассылки, Вы можете в любое время отказаться от рассылки путём информирования нас по указанным контактам для обратной связи.

+

СБОР И ИСПОЛЬЗОВАНИЕ ИНФОРМАЦИИ, НЕ ЯВЛЯЮЩЕЙСЯ ПЕРСОНАЛЬНОЙ

+

Мы также собираем персональные данные, не являющиеся персональными − данные, не позволяющие прямо ассоциировать их с каким-либо определённым лицом. Мы можем собирать, использовать, передавать и раскрывать информацию, не являющуюся персональной, для любых целей. Ниже приведены примеры информации, не являющейся персональной, которую мы собираем, и как мы можем её использовать.

+

Мы можем собирать персональные данные, такие как: источник перехода на Сайт, особенности поведения пользователя на Сайте, количество просмотренных на Сайте страниц. Такие данные обезличены и не являются персональными. Эти данные собираются для того, чтобы лучше понимать, какая информация интересна посетителям Сайта и улучшать качество контента.

+

4. Передача персональных данных

+

Персональные данные Пользователей не передаются каким-либо третьим лицам. Пользователи, которые передали нам свои персональные данные до вступления в силу настоящих Правил автоматически соглашаются на использование свои персональных данных. В тоже время, они всегда могут отозвать свое согласие на использование персональных данных через форму обратной связи.

+

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

+

5. Уничтожение персональных данных

+

Персональные данные пользователя уничтожаются при отзыве субъектом персональных данных согласия на обработку персональных данных.

+

ИДЕНТИФИКАЦИОННЫЕ ФАЙЛЫ (СOOKIES) И ИНЫЕ ТЕХНОЛОГИИ

+

Веб-сайт, интерактивные услуги и приложения, сообщения электронной почты и любые иные коммуникации от нашего лица могут использовать идентификационные файлы cookies и иные технологии, такие как пиксельные ярлыки (pixel tags), веб-маяки (web beacons). Соответственно при пользовании веб-сайтом и иными услугами на Вашем устройстве может возникнуть всплывающее окно с уведомлением об использовании cookies.

+

Указанные технологии помогают нам лучше понимать поведение пользователей, сообщают нам, какие разделы нашего сайта были посещены пользователями, и измеряют эффективность рекламы и сетевых поисков. Мы рассматриваем информацию, собираемую файлами cookies и иными технологиями как информацию, не являющуюся персональной.

+

Вы можете контролировать cookies следуя инструкциям Вашего браузера или устройства. Как правило, Вы можете изменить настройки cookies в разделе «Настройки» или «Системные настройки».

+

Как и в случае большинства веб-сайтов, мы собираем некоторую информацию автоматически и храним её в файлах статистики. Такая информация включает в себя адрес Интернет-протокола (IP-адрес), тип и язык браузера, информацию о поставщике Интернет-услуг, страницы отсылки и выхода, сведения об операционной системе, отметку даты и времени, а также сведения о посещениях. Мы используем такую информацию для понимания и анализа тенденций, администрирования сайта, изучения поведения пользователей на сайте и сбора демографической информации о нашем основном контингенте пользователей в целом. Организация может использовать такую информацию в своих маркетинговых целях.

+

В некоторых наших сообщениях электронной почты мы используем интерактивные ссылки на информацию, размещённую на Сайте. Когда пользователи проходят по таким ссылкам, прежде чем они попадают на страницу назначения на нашем веб-сайте, их запросы проходят отдельную регистрацию. Мы отслеживаем такие «проходные» данные, для того чтобы помочь нам определить интерес к отдельным темам и измерить эффективность наших коммуникаций с пользователями. Если Вы предпочитаете, чтобы Ваши обращения не отслеживались подобным образом, Вы не должны проходить по текстовым или графическим ссылкам в сообщениях электронной почты.

+

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

+

6. Защита персональных данных

+

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

+

ЦЕЛОСТНОСТЬ И СОХРАНЕНИЕ ПЕРСОНАЛЬНОЙ ИНФОРМАЦИИ

+

Мы будем хранить Ваши персональные данные и информацию в течение срока, необходимого для выполнения целей, описываемых в настоящей Политике Конфиденциальности.

+

Мы не собираем персональные данные о несовершеннолетних. Если нам станет известно о том, что мы получили персональные данные о несовершеннолетнем, мы предпримем меры для удаления такой информации в максимально короткий срок.

+

Мы настоятельно рекомендуем родителям и иным лицам, под чьим присмотром находятся несовершеннолетние (законные представители — родители, усыновители или попечители), контролировать использование несовершеннолетними веб-сайтов.

+

Оператор не несет ответственности за действия третьих лиц, получивших в результате использования Интернета или Услуг Сайта доступ к информации о Пользователе и за последствия использования данных и информации, которые, в силу природы Сайта, доступны любому пользователю сети Интернет.

+

ВОПРОСЫ ОТНОСИТЕЛЬНО КОНФИДЕНЦИАЛЬНОСТИ

+

Если у вас возникнут вопросы в отношении настоящей Политики Конфиденциальности или обработки данных, Вы можете связаться с нами по контактам обратной связи office@ti-russia.org.

+

7. Обращения пользователей

+

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

+

Оператор обязуется рассмотреть и направить ответ на поступивший запрос Пользователя в течение 30 дней с момента поступления обращения.

+

ДРУГОЕ

+

Посетитель сайта Организации, предоставляющий свои персональные данные и информацию, тем самым соглашается с положениями данной Политики Конфиденциальности.

+

Мы оставляем за собой право вносить любые изменения в Политику в любое время по своему усмотрению с целью дальнейшего совершенствования системы защиты от несанкционированного доступа к сообщаемым Пользователями персональным данным без согласия Пользователя. Когда мы вносим существенные изменения в Политику Конфиденциальности, на нашем сайте размещается соответствующее уведомление вместе с обновлённой версией Политики Конфиденциальности.

+

Действие настоящей Политики не распространяется на действия и интернет-ресурсы третьих лиц.

+

+
+
+ ); +}; + +export default Privacy; diff --git a/src/app/[locale]/support/Support.scss b/src/app/[locale]/support/Support.scss new file mode 100644 index 0000000..94f1304 --- /dev/null +++ b/src/app/[locale]/support/Support.scss @@ -0,0 +1,83 @@ +.support { + display: flex; + flex-direction: column; + gap: 25px; + + &__input { + display: flex; + flex-direction: column; + gap: 10px; + + label { + font-size: 18px; + font-weight: 400; + line-height: 135%; + color: #686b7c; + } + + div { + display: flex; + align-items: center; + gap: 16px; + input, textarea { + width: 100%; + max-width: 957px; + padding: 16px; + border: 1px solid rgb(221, 222, 226); + border-radius: 8px; + background: rgb(255, 255, 255); + font-size: 18px; + font-weight: 400; + line-height: 135%; + color: #09090b; + } + + textarea { + height: 276px; + } + + img { + width: 22px; + height: 22px; + } + } + } + + &__btn, + &__btn_active { + margin-top: 50px; + width: fit-content; + padding: 10px; + border-radius: 8px; + background-color: rgb(158, 167, 175); + cursor: auto; + font-size: 16px; + font-weight: 800; + line-height: 19px; + color: rgb(255, 255, 255); + } + + &__btn_active { + background-color: rgb(57, 152, 232); + cursor: pointer; + } + + &__logout { + display: none; + } +} + +@media screen and (max-width: 550px) { + .support { + &__btn, + &__btn_active { + align-self: flex-end; + margin-top: 15px; + margin-bottom: 150px; + } + + &__logout { + display: block; + } + } +} diff --git a/src/app/[locale]/support/assets/header.svg b/src/app/[locale]/support/assets/header.svg new file mode 100644 index 0000000..0600736 --- /dev/null +++ b/src/app/[locale]/support/assets/header.svg @@ -0,0 +1,12 @@ + + + Created with Pixso. + + + + + + + + + diff --git a/src/app/[locale]/support/page.tsx b/src/app/[locale]/support/page.tsx new file mode 100644 index 0000000..42e924d --- /dev/null +++ b/src/app/[locale]/support/page.tsx @@ -0,0 +1,97 @@ +"use client"; + +import Typography from "@/shared/ui/components/Typography/Typography"; +import "./Support.scss"; +import Image from "next/image"; +import header from "./assets/header.svg"; +import { Metadata } from "next"; +import BreadCrumbs from "@/features/BreadCrumbs/BreadCrumbs"; +import { apiInstance } from "@/shared/config/apiConfig"; +import { IMetatag } from "@/shared/types/metatag-type"; +import { useState } from "react"; + +const Support = () => { + + const [isSent, setIsSent] = useState(false); + + const handleSubmit: React.MouseEventHandler< + HTMLFormElement + > = async (e) => { + e.preventDefault(); + + const formData = new FormData(e.currentTarget); + console.log(formData); + try { + /* + const res = await apiInstance.post( + `/${endpoint}/${id}/reviews/`, + formData, + config + );*/ + } catch (error) { + console.log(error); + } + setIsSent(true); + }; + + + return ( +
+ + Поддержка +
+ +

+ Напишите нам +

+ + {!isSent ? ( + +
+
+ +
+
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+
+