'use client'; import { useForm } from 'react-hook-form'; import { zodResolver } from '@hookform/resolvers/zod'; import { z } from 'zod'; import Link from 'next/link'; import { useLogin } from '@/lib/hooks/useAuth'; import { Button } from '@/components/ui/button'; import { Input } from '@/components/ui/input'; import { Label } from '@/components/ui/label'; import { useSearchParams } from 'next/navigation'; const loginSchema = z.object({ email: z.string().email('Invalid email address'), password: z.string().min(8, 'Password must be at least 8 characters'), }); type LoginForm = z.infer; export default function LoginPage() { const searchParams = useSearchParams(); const registered = searchParams.get('registered'); const { mutate: login, isPending, error } = useLogin(); const { register, handleSubmit, formState: { errors }, } = useForm({ resolver: zodResolver(loginSchema), }); const onSubmit = (data: LoginForm) => { login(data); }; return (

ColaFlow

Sign in to your account

{registered && (
Registration successful! Please sign in.
)} {error && (
{(error as { response?: { data?: { message?: string } } }) ?.response?.data?.message || 'Login failed. Please try again.'}
)}
{errors.email && (

{errors.email.message}

)}
{errors.password && (

{errors.password.message}

)}
Don't have an account? Sign up
); }