import { useState } from 'react'; import { useNavigate, useLocation } from 'react-router'; import { ArrowRight, Check, ExternalLink, ShieldCheck } from 'lucide-react'; interface ConsentItem { id: string; required: boolean; text: string; linkLabel: string; linkHref: string; } const consents: ConsentItem[] = [ { id: 'pdp', required: true, text: 'Я ознакомлен с Политикой обработки персональных данных ООО «ХАН» и даю своё Согласие на обработку моих персональных данных', linkLabel: 'Политика обработки персональных данных', linkHref: '#pdp', }, { id: 'terms', required: true, text: 'Я прочитал и соглашаюсь с Пользовательским соглашением', linkLabel: 'Пользовательское соглашение', linkHref: '#terms', }, { id: 'marketing', required: false, text: 'Я даю своё согласие на получение рекламных и маркетинговых коммуникаций', linkLabel: 'Условия получения коммуникаций', linkHref: '#marketing', }, ]; function Checkbox({ checked, onChange }: { checked: boolean; onChange: () => void }) { return ( ); } export function AuthConsent() { const navigate = useNavigate(); const location = useLocation(); const returnTo = (location.state as { returnTo?: string })?.returnTo ?? '/auth/phone'; const [checked, setChecked] = useState>({ pdp: false, terms: false, marketing: false, }); const toggle = (id: string) => setChecked(prev => ({ ...prev, [id]: !prev[id] })); const requiredDone = consents.filter(c => c.required).every(c => checked[c.id]); function handleSubmit(e: React.FormEvent) { e.preventDefault(); if (requiredDone) navigate(returnTo); } return (
{/* Иконка + заголовок */}

Перед началом работы

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

{/* Форма согласий */}
{consents.map(consent => ( ))}

* — обязательные согласия

{/* Кнопка */}
); }