import { useState } from 'react'; import { useNavigate } from 'react-router'; import { ArrowRight } from 'lucide-react'; import { setAuthStatus } from '../data/session'; export function AuthPhone() { const navigate = useNavigate(); const [phone, setPhone] = useState(''); function formatPhone(raw: string) { const digits = raw.replace(/\D/g, '').slice(0, 11); if (digits.length === 0) return ''; let result = '+7'; if (digits.length > 1) result += ' (' + digits.slice(1, 4); if (digits.length >= 4) result += ') ' + digits.slice(4, 7); if (digits.length >= 7) result += ' ' + digits.slice(7, 9); if (digits.length >= 9) result += ' ' + digits.slice(9, 11); return result; } function handleInput(e: React.ChangeEvent) { const raw = e.target.value.replace(/\D/g, ''); // Если начинается с 8, заменяем на 7 const normalized = raw.startsWith('8') ? '7' + raw.slice(1) : raw.startsWith('7') ? raw : '7' + raw; setPhone(formatPhone(normalized)); } const isValid = phone.replace(/\D/g, '').length === 11; function handleSubmit(e: React.FormEvent) { e.preventDefault(); if (isValid) navigate('/auth/otp', { state: { phone } }); } return (
{/* Верхняя часть */}
{/* Логотип */}
HAN

Персональный консультант мигранта

{/* Заголовок */}

Добро пожаловать

Введите номер телефона — отправим код подтверждения

{/* Форма */}

Россия · Код страны +7

{/* Низ страницы */}

Нажимая «Получить код», вы соглашаетесь с{' '} условиями использования {' '}и{' '} политикой конфиденциальности

); }