'use client'; import Link from 'next/link'; import { FormEvent, useState } from 'react'; import { useRouter } from 'next/navigation'; import { ShieldCheck } from 'lucide-react'; import { BrandLogo } from '@/components/id/brand-logo'; import { useAuth } from '@/components/id/auth-provider'; import { useToast } from '@/components/id/toast-provider'; import { Button } from '@/components/ui/button'; import { Input } from '@/components/ui/input'; import { PhoneInput, phoneCountries, toE164 } from '@/components/ui/phone-input'; import { Tabs, TabsContent, TabsList, TabsTrigger } from '@/components/ui/tabs'; export default function RegisterPage() { const router = useRouter(); const { sendLoginOtp } = useAuth(); const { showToast } = useToast(); const [authTab, setAuthTab] = useState<'email' | 'phone'>('email'); const [email, setEmail] = useState(''); const [phoneNumber, setPhoneNumber] = useState(''); const [country, setCountry] = useState(phoneCountries[0]); const [isSubmitting, setIsSubmitting] = useState(false); async function handleSubmit(event: FormEvent) { event.preventDefault(); setIsSubmitting(true); try { const recipient = authTab === 'email' ? email.trim() : toE164(country, phoneNumber); await sendLoginOtp(recipient); showToast('Код отправлен. Подтвердите его на экране входа.'); router.push('/auth/login'); } catch (error) { showToast(error instanceof Error ? error.message : 'Не удалось отправить код'); } finally { setIsSubmitting(false); } } return (

Создайте ID

Введите почту или телефон. Пароль не нужен.

setAuthTab(value as 'email' | 'phone')} className="w-full"> Почта Телефон setEmail(event.target.value)} required={authTab === 'email'} />
); }