'use client' import React, { useState } from 'react' import { AuthLayout } from '@/components/layouts/AuthLayout' import { Input } from '@/components/common/Input' import { Button } from '@/components/common/Button' import { Checkbox } from '@/components/common/Checkbox' import { Link } from '@/components/common/Link' import { useAuth } from '@/lib/hooks/useAuth' export default function LoginPage() { const { login, isLoading, error } = useAuth() const [formData, setFormData] = useState({ email: '', password: '', rememberMe: false, }) const [formErrors, setFormErrors] = useState>({}) const validateForm = () => { const errors: Record = {} if (!formData.email) { errors.email = 'Email is required' } else if (!/\S+@\S+\.\S+/.test(formData.email)) { errors.email = 'Email is invalid' } if (!formData.password) { errors.password = 'Password is required' } else if (formData.password.length < 8) { errors.password = 'Password must be at least 8 characters' } setFormErrors(errors) return Object.keys(errors).length === 0 } const handleSubmit = async (e: React.FormEvent) => { e.preventDefault() if (!validateForm()) { return } await login({ email: formData.email, password: formData.password, }) } const handleChange = (e: React.ChangeEvent) => { const { name, value, type, checked } = e.target setFormData((prev) => ({ ...prev, [name]: type === 'checkbox' ? checked : value, })) // Clear error for this field if (formErrors[name]) { setFormErrors((prev) => { const newErrors = { ...prev } delete newErrors[name] return newErrors }) } } return (
{error && (

{error.message || 'Login failed. Please check your credentials and try again.'}

)}
Forgot password?
Don't have an account?{' '} Sign up
) }