import { useState, useEffect } from 'react'; import { useRouter } from 'next/router'; import Link from 'next/link'; import { Mail, Lock, User, Phone, AlertCircle } from 'lucide-react'; import authService from '../services/auth'; export default function RegisterPage() { const router = useRouter(); const [formData, setFormData] = useState({ email: '', password: '', password_confirm: '', first_name: '', last_name: '', phone: '' }); const [loading, setLoading] = useState(false); const [error, setError] = useState(''); const [redirectTo, setRedirectTo] = useState(null); // Проверяем, есть ли параметр redirect в URL useEffect(() => { if (router.query.redirect) { setRedirectTo(router.query.redirect as string); } // Если пользователь уже авторизован, перенаправляем его if (authService.isAuthenticated()) { router.push(redirectTo || '/'); } }, [router.query.redirect, redirectTo, router]); const handleChange = (e) => { const { name, value } = e.target; setFormData(prev => ({ ...prev, [name]: value })); }; const handleSubmit = async (e) => { e.preventDefault(); setLoading(true); setError(''); // Проверяем совпадение паролей if (formData.password !== formData.password_confirm) { setError('Пароли не совпадают'); setLoading(false); return; } try { // Отправляем данные для регистрации (включая поле password_confirm) await authService.register(formData); // Перенаправляем пользователя после успешной регистрации router.push(redirectTo || '/'); } catch (err) { console.error('Ошибка при регистрации:', err); setError('Не удалось зарегистрироваться. Возможно, пользователь с таким email уже существует.'); } finally { setLoading(false); } }; return (

Регистрация

Уже есть аккаунт?{' '} Войдите

{error && (

{error}

)}

Минимум 8 символов

); }