'use client'; import { useForm } from 'react-hook-form'; import { zodResolver } from '@hookform/resolvers/zod'; import { z } from 'zod'; import Link from 'next/link'; import { useRegisterTenant } from '@/lib/hooks/useAuth'; import { Button } from '@/components/ui/button'; import { Input } from '@/components/ui/input'; import { Label } from '@/components/ui/label'; const registerSchema = z.object({ email: z.string().email('Invalid email address'), password: z .string() .min(8, 'Password must be at least 8 characters') .regex( /^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)/, 'Password must contain uppercase, lowercase, and number' ), fullName: z.string().min(2, 'Full name must be at least 2 characters'), tenantName: z .string() .min(2, 'Organization name must be at least 2 characters'), }); type RegisterForm = z.infer; export default function RegisterPage() { const { mutate: registerTenant, isPending, error } = useRegisterTenant(); const { register, handleSubmit, formState: { errors }, } = useForm({ resolver: zodResolver(registerSchema), }); const onSubmit = (data: RegisterForm) => { registerTenant(data); }; return (

ColaFlow

Create your account

{error && (
{(error as { response?: { data?: { message?: string } } }) ?.response?.data?.message || 'Registration failed. Please try again.'}
)}
{errors.fullName && (

{errors.fullName.message}

)}
{errors.email && (

{errors.email.message}

)}
{errors.password && (

{errors.password.message}

)}

Must contain uppercase, lowercase, and number

{errors.tenantName && (

{errors.tenantName.message}

)}
Already have an account? Sign in
); }