@@ -14,7 +14,7 @@ export default async function page() {
- +
@@ -16,7 +16,7 @@ export default async function page() {
- +
@@ -0,0 +1,27 @@ +import { getContacts } from '@/src/shared/api/requests' +import PolicyBlock from '@/src/shared/components/pages_components/policy/PolicyBlock' +import Footer from '@/src/shared/components/shared_components/Footer/Footer' +import Header from '@/src/shared/components/shared_components/Header/Header' +import UpperBlock from '@/src/shared/components/shared_components/Header/UpperBlock' +import QuestionButton from '@/src/shared/components/shared_components/QuestionButton/QuestionButton' +import React from 'react' + +export default async function page() { + const contacts = (await getContacts()).data + + return ( +
+ +
+ +
+
+
+
+ +
+
+ +
+ ) +} @@ -21,7 +21,7 @@ export default async function Page() {
- +
@@ -15,7 +15,7 @@ export default async function page() {
- +
@@ -12,7 +12,7 @@ export default async function notFound() {
- +
@@ -29,7 +29,7 @@ export default async function Home() {
- +
@@ -29,10 +29,9 @@ export default function ContactsBlock({ contacts }: { contacts: IContacts }) { const [isModalThanksOpened, setIsModalThanksOpened] = useState(false) const recaptchaRef = useRef(null); + const [mailToPass, setMailToPass] = useState("") function onSubmit(data: any) { - console.log(data); - const dataToSend: IFeedback = { name: data.name, phonenumber: data.phone, @@ -42,7 +41,7 @@ export default function ContactsBlock({ contacts }: { contacts: IContacts }) { sendFeedback(dataToSend) .then((res) => { - console.log(dataToSend); + setMailToPass(data.email) setIsModalThanksOpened(true) reset() recaptchaRef.current?.reset(); @@ -54,7 +53,7 @@ export default function ContactsBlock({ contacts }: { contacts: IContacts }) { return (
- +

контакты и обратная связь

Если у Вас есть какие-либо вопросы или Вам нужна помощь, Вы можете связаться с нами.
Тел: +7 927 520 33 00 Мы доступны с 10 утра до 20 вечера.
@@ -92,7 +91,6 @@ export default function ContactsBlock({ contacts }: { contacts: IContacts }) { ref={recaptchaRef} sitekey={process.env.NEXT_PUBLIC_CAPTCHA_KEY || ""} onChange={(e) => { - console.log(e); setValue("captcha", String(e)) trigger("captcha") }} @@ -25,9 +25,6 @@ export default function PortfolioBlock({ contacts, portfolioItems }: IProps) { const [hasPadding, setHasPadding] = useState(true); // Управляем padding только в начале const { height, width } = useWindowSize() - console.log(portfolioItems); - - // Убираем padding при любом изменении слайдов const handleSlideChange = (swiper: SwiperClass) => { if (swiper.activeIndex !== 0) { @@ -24,10 +24,6 @@ export default function PriceListBlock({ priceList, contacts }: IProps) { setValue(newValue); }; - useEffect(() => { - console.log(value); - }, [value]) - return (

{isModalFeedbackOpened && } @@ -0,0 +1,42 @@ +import React from 'react' + +export default function PolicyBlock() { + return ( +
+

политика конфиденциальности
и пользовательское соглашение

+ +
+
+

1. Общие положения

+

+ Настоящая политика обработки персональных данных составлена в соответствии с требованиями Федерального закона от 27.07.2006. № 152-ФЗ «О персональных данных» (далее — Закон о персональных данных) и определяет порядок обработки персональных данных и меры по обеспечению безопасности персональных данных, предпринимаемые AAAAA (далее — Оператор). +
+
+ 1.1. Оператор ставит своей важнейшей целью и условием осуществления своей деятельности соблюдение прав и свобод человека и гражданина при обработке его персональных данных, в том числе защиты прав на неприкосновенность частной жизни, личную и семейную тайну.
+ 1.2. Настоящая политика Оператора в отношении обработки персональных данных (далее — Политика) применяется ко всей информации, которую Оператор может получить о посетителях веб-сайта https://AAAAA. +

+
+ +
+

2. Основные понятия

+

+ 2.1. Автоматизированная обработка персональных данных — обработка персональных данных с помощью средств вычислительной техники.
+ 2.2. Блокирование персональных данных — временное прекращение обработки персональных данных (за исключением случаев, если обработка необходима для уточнения персональных данных).
+ 2.3. Веб-сайт — совокупность графических и информационных материалов, а также программ для ЭВМ и баз данных, обеспечивающих их доступность в сети интернет по сетевому адресу https://AAAAA.
+ 2.4. Информационная система персональных данных — совокупность содержащихся в базах данных персональных данных и обеспечивающих их обработку информационных технологий и технических средств.
+ 2.5. Обезличивание персональных данных — действия, в результате которых невозможно определить без использования дополнительной информации принадлежность персональных данных конкретному Пользователю или иному субъекту персональных данных.
+ 2.6. Обработка персональных данных — любое действие (операция) или совокупность действий (операций), совершаемых с использованием средств автоматизации или без использования таких средств с персональными данными, включая сбор, запись, систематизацию, накопление, хранение, уточнение (обновление, изменение), извлечение, использование, передачу (распространение, предоставление, доступ), обезличивание, блокирование, удаление, уничтожение персональных данных.
+ 2.7. Оператор — государственный орган, муниципальный орган, юридическое или физическое лицо, самостоятельно или совместно с другими лицами организующие и/или осуществляющие обработку персональных данных, а также определяющие цели обработки персональных данных, состав персональных данных, подлежащих обработке, действия (операции), совершаемые с персональными данными.
+ 2.8. Персональные данные — любая информация, относящаяся прямо или косвенно к определенному или определяемому Пользователю веб-сайта https://AAAAA.
+ 2.9. Персональные данные, разрешенные субъектом персональных данных для распространения, — персональные данные, доступ неограниченного круга лиц к которым предоставлен субъектом персональных данных путем дачи согласия на обработку персональных данных, разрешенных субъектом персональных данных для распространения в порядке, предусмотренном Законом о персональных данных (далее — персональные данные, разрешенные для распространения).
+ 2.10. Пользователь — любой посетитель веб-сайта https://AAAAA.
+ 2.11. Предоставление персональных данных — действия, направленные на раскрытие персональных данных определенному лицу или определенному кругу лиц.
+ 2.12. Распространение персональных данных — любые действия, направленные на раскрытие персональных данных неопределенному кругу лиц (передача персональных данных) или на ознакомление с персональными данными неограниченного круга лиц, в том числе обнародование персональных данных в средствах массовой информации, размещение в информационно-телекоммуникационных сетях или предоставление доступа к персональным данным каким-либо иным способом.
+ 2.13. Трансграничная передача персональных данных — передача персональных данных на территорию иностранного государства органу власти иностранного государства, иностранному физическому или иностранному юридическому лицу.
+ 2.14. Уничтожение персональных данных — любые действия, в результате которых персональные данные уничтожаются безвозвратно с невозможностью дальнейшего восстановления содержания персональных данных в информационной системе персональных данных и/или уничтожаются материальные носители персональных данных.
+

+
+
+
+ ) +} @@ -33,10 +33,10 @@ export default function FeedbackBlock({ contacts }: { contacts: IContacts }) { const [isModalThanksOpened, setIsModalThanksOpened] = useState(false) const recaptchaRef = useRef(null); + const [mailToPass, setMailToPass] = useState("") - function onSubmit(data: any) { - console.log(data); + function onSubmit(data: any) { const dataToSend: IFeedback = { name: data.name, phonenumber: data.phone, @@ -46,6 +46,7 @@ export default function FeedbackBlock({ contacts }: { contacts: IContacts }) { sendFeedback(dataToSend) .then((res) => { + setMailToPass(data.email) setIsModalThanksOpened(true) reset() recaptchaRef.current?.reset(); @@ -56,7 +57,7 @@ export default function FeedbackBlock({ contacts }: { contacts: IContacts }) { return (
- +
@@ -98,7 +99,6 @@ export default function FeedbackBlock({ contacts }: { contacts: IContacts }) { ref={recaptchaRef} sitekey={process.env.NEXT_PUBLIC_CAPTCHA_KEY || ""} onChange={(e) => { - console.log(e); setValue("captcha", String(e)) trigger("captcha") }} @@ -12,6 +12,7 @@ import { IContacts } from "@/src/shared/models/models" import { useState } from "react" import dynamic from 'next/dynamic'; +import Link from "next/link"; const ModalFeedback = dynamic(() => import('@/src/shared/components/shared_components/Modals/ModalFeedback/ModalFeedback')); interface IProps { @@ -60,8 +61,8 @@ export default function Footer(props: IProps) { информация
- политика
конфиденциальности
- пользовательское
соглашение
+ политика
конфиденциальности + пользовательское
соглашение частые вопросы { setIsModalFeedbackOpened(true) @@ -1,11 +1,24 @@ +"use client" import chevron_left from "@/public/icons/chevron-left.svg" import Image from "next/image" +import React from "react"; +import dynamic from 'next/dynamic'; +import { useState } from "react"; +import { IContacts } from "@/src/shared/models/models"; + +const ModalFeedback = dynamic(() => import('@/src/shared/components/shared_components/Modals/ModalFeedback/ModalFeedback')); + +export default function UpperBlock({ contacts }: { contacts: IContacts }) { + const [isModalFeedbackOpened, setIsModalFeedbackOpened] = useState(false); -export default function UpperBlock() { return ( -
+ <> + {isModalFeedbackOpened && } +
{ setIsModalFeedbackOpened(true) }} className="z-[6] fixed top-0 w-full flex justify-center items-center gap-[6px] text-white text-[8px] pt-[8px] pb-[6px] uppercase bg-red-main lg:pt-[6px] lg:pb-[5px] lg:text-[10px] hover:cursor-pointer"> + дарим Скидку -10% на первый заказ в нашем Шоурум-Ателье! - chevron -
+ chevron +
+ ) } @@ -36,10 +36,9 @@ export default function ModalFeedback({ isModalFeedbackOpened, setIsModalFeedbac const [hasDataSent, setHasDataSent] = useState(false) const { height, width } = useWindowSize() + const [mailToPass, setMailToPass] = useState("") function onSubmit(data: any) { - console.log(data); - const dataToSend: IFeedback = { name: data.name, phonenumber: data.phone, @@ -50,6 +49,7 @@ export default function ModalFeedback({ isModalFeedbackOpened, setIsModalFeedbac sendFeedback(dataToSend) .then((res) => { setHasDataSent(true) + setMailToPass(data.email) }).catch((er) => { // console.log(dataToSend); }) @@ -122,7 +122,6 @@ export default function ModalFeedback({ isModalFeedbackOpened, setIsModalFeedbac { - console.log(e); setValue("captcha", String(e)) trigger("captcha") }} @@ -139,7 +138,7 @@ export default function ModalFeedback({ isModalFeedbackOpened, setIsModalFeedbac
: - } + }
@@ -8,13 +8,13 @@ import { IContacts } from '@/src/shared/models/models' import React, { Dispatch, SetStateAction } from 'react' import Image from 'next/image' -export default function ThanksContent({ contacts, setModal }: { contacts: IContacts, setModal: Dispatch> }) { +export default function ThanksContent({ contacts, setModal, mail }: { contacts: IContacts, setModal: Dispatch>, mail: string }) { return (

Спасибо!

- Письмо с информацией о Вашем сообщении уже отправлено на указанную Вами почту:
userexampleemail@gmail.com
Наш менеджер свяжется с Вами в ближайшее время, благодарим за обращение! + Письмо с информацией о Вашем сообщении уже отправлено на указанную Вами почту:
{mail}
Наш менеджер свяжется с Вами в ближайшее время, благодарим за обращение!

Подпишитесь на наши соцсети и мессенджеры! @@ -6,10 +6,11 @@ import ThanksContent from './ThanksContent'; interface IProps { isModalThanksOpened: boolean, setIsModalThanksOpened: Dispatch>, - contacts: IContacts + contacts: IContacts, + mail: string } -export default function ThanksModal({ isModalThanksOpened, setIsModalThanksOpened, contacts }: IProps) { +export default function ThanksModal({ isModalThanksOpened, setIsModalThanksOpened, contacts, mail }: IProps) { function closeModal() { setIsModalThanksOpened(false); @@ -33,7 +34,7 @@ export default function ThanksModal({ isModalThanksOpened, setIsModalThanksOpene >
- +