'use client' import { useState } from 'react' import Link from 'next/link' import { useRouter } from 'next/navigation' import { Mail, Lock, Loader2, Sparkles, AlertCircle } from 'lucide-react' import { useAuth } from '@/context/AuthContext' import { cn } from '@/lib/utils' export default function LoginPage() { const router = useRouter() const { login, isAuthenticated } = useAuth() const [email, setEmail] = useState('') const [password, setPassword] = useState('') const [error, setError] = useState('') const [loading, setLoading] = useState(false) // Redirect if already authenticated if (isAuthenticated) { router.push('/') return null } const validateForm = (): string | null => { if (!email.trim()) { return 'Введіть email адресу' } // Basic email validation const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/ if (!emailRegex.test(email)) { return 'Введіть коректну email адресу' } if (!password) { return 'Введіть пароль' } if (password.length < 8) { return 'Пароль повинен містити мінімум 8 символів' } return null } const handleSubmit = async (e: React.FormEvent) => { e.preventDefault() setError('') // Client-side validation const validationError = validateForm() if (validationError) { setError(validationError) return } setLoading(true) try { await login(email, password) router.push('/') } catch (err) { setError(err instanceof Error ? err.message : 'Помилка входу. Перевірте дані та спробуйте ще раз.') } finally { setLoading(false) } } return (
Увійдіть, щоб продовжити у DAARION.city
Немає акаунту?{' '} Зареєструватися
← Повернутися на головну