'use client'; import React from 'react'; import { useRouter } from 'next/navigation'; import { MedReportTitle } from '@/components/med-report-title'; import { SubmitButton } from '@/components/ui/submit-button'; import { sendCompanyOfferEmail } from '@/lib/services/mailer.service'; import { submitCompanyRegistration } from '@/lib/services/register-company.service'; import { CompanySubmitData } from '@/lib/types/company'; import { companySchema } from '@/lib/validations/companySchema'; import { zodResolver } from '@hookform/resolvers/zod'; import { useForm } from 'react-hook-form'; import { useTranslation } from 'react-i18next'; import { FormItem } from '@kit/ui/form'; import { Input } from '@kit/ui/input'; import { Label } from '@kit/ui/label'; import { Trans } from '@kit/ui/trans'; export default function RegisterCompany() { const router = useRouter(); const { register, handleSubmit, formState: { errors, isValid, isSubmitting }, } = useForm({ resolver: zodResolver(companySchema), mode: 'onChange', }); const language = useTranslation().i18n.language; async function onSubmit(data: CompanySubmitData) { const formData = new FormData(); Object.entries(data).forEach(([key, value]) => { if (value !== undefined) formData.append(key, value); }); try { await submitCompanyRegistration(formData); sendCompanyOfferEmail(data, language) .then(() => router.push('/register-company/success')) .catch((error) => alert('error: ' + error)); } catch (err: unknown) { if (err instanceof Error) { alert('Server validation error: ' + err.message); } alert('Server validation error'); } } return (