'use client' import React from 'react' import { useRouter } from 'next/navigation' import { zodResolver } from "@hookform/resolvers/zod" import { useForm } from "react-hook-form" import * as z from "zod" import { Mail, Lock, UserPlus } 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' const formSchema = z.object({ email: z.string().email(), password: z.string().min(6), confirmPassword: z.string().min(6), }).refine((data) => data.password === data.confirmPassword, { message: "Passwords don't match", path: ["confirmPassword"], }) export default function SignUpPage() { const router = useRouter() const [error, setError] = React.useState('') const form = useForm>({ resolver: zodResolver(formSchema), defaultValues: { email: "", password: "", confirmPassword: "", }, }) async function onSubmit(values: z.infer) { try { const { error: signUpError } = await supabase.auth.signUp({ email: values.email, password: values.password, }) if (signUpError) throw signUpError router.push('/auth/login?message=Check your email to confirm your account') } catch (err) { setError(err instanceof Error ? err.message : 'Something went wrong') } } return (

Create an account

Sign up to get started

{error && (
{error}
)}
) }