import { useState } from 'react'; import { useNavigate, useLocation } from 'react-router'; import { ArrowRight, Check, ExternalLink, ShieldCheck } from 'lucide-react'; interface ConsentLink { label: string; href: string; } interface ConsentItem { id: string; required: boolean; text: string; links: ConsentLink[]; } const consents: ConsentItem[] = [ { id: 'pdp', required: true, text: 'Я ознакомлен с Политикой обработки персональных данных ООО «ХАН» и даю своё Согласие на обработку моих персональных данных', links: [ { label: 'Согласие на обработку ПД', href: '#pdp-consent' }, { label: 'Политика обработки ПД', href: '#pdp-policy' }, ], }, { id: 'terms', required: true, text: 'Я прочитал и соглашаюсь с Пользовательским соглашением', links: [{ label: 'Пользовательское соглашение', href: '#terms' }], }, { id: 'marketing', required: false, text: 'Я даю своё согласие на получение рекламных и маркетинговых коммуникаций', links: [{ label: 'Условия получения коммуникаций', href: '#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 => (
toggle(consent.id)} >
toggle(consent.id)} />
))}

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

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