'use client' import React from 'react' import { useRouter, useSearchParams } from 'next/navigation' import { zodResolver } from "@hookform/resolvers/zod" import { useForm } from "react-hook-form" import * as z from "zod" import { Mail, Lock, LogIn } from 'lucide-react' import { supabase } from '../../../lib/supabase' import { Button } from '../../../components/ui/button' import { Input } from '../../../components/ui/input' import { Label } from '../../../components/ui/label' import { Link } from '../../../components/ui/link' const formSchema = z.object({ email: z.string().email(), password: z.string().min(6), }) export default function LoginPage() { const router = useRouter() const searchParams = useSearchParams() const [error, setError] = React.useState('') const [isLoading, setIsLoading] = React.useState(false) const message = searchParams.get('message') const form = useForm>({ resolver: zodResolver(formSchema), defaultValues: { email: "", password: "", }, }) async function onSubmit(values: z.infer) { try { setIsLoading(true) setError('') const { error: signInError } = await supabase.auth.signInWithPassword({ email: values.email, password: values.password, }) if (signInError) throw signInError router.push('/dashboard') } catch (err) { setError(err instanceof Error ? err.message : 'Failed to sign in') } finally { setIsLoading(false) } } return (

Welcome back

Enter your credentials to sign in

{message && (
{message}
)} {error && (
{error}
)}
Don't have an account? Sign up
) }