Skip to content

Commit 5f4c302

Browse files
committed
chore: fixed forms
Signed-off-by: tyloo <[email protected]>
1 parent d16cfc9 commit 5f4c302

File tree

5 files changed

+18
-15
lines changed

5 files changed

+18
-15
lines changed

.env.example

+1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
RESEND_API_KEY=
2+
RESEND_AUDIENCE_ID=
23
CONTACT_SENDER_NAME=
34
CONTACT_SENDER_EMAIL=
45
CONTACT_RECIPIENT_NAME=

src/components/contact-form.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,8 @@ export default function ContactForm() {
2020
const [captchaEnabled, setCaptchaEnabled] = useState(false)
2121

2222
const {
23-
watch,
2423
register,
24+
watch,
2525
handleSubmit,
2626
reset,
2727
formState: { errors, isSubmitting }

src/components/newsletter-form.tsx

+4-2
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,8 @@ export default function NewsletterForm() {
2020
const [captchaEnabled, setCaptchaEnabled] = useState(false)
2121

2222
const {
23-
watch,
2423
register,
24+
watch,
2525
handleSubmit,
2626
reset,
2727
formState: { errors, isSubmitting }
@@ -40,7 +40,9 @@ export default function NewsletterForm() {
4040
}
4141

4242
const processForm: SubmitHandler<Inputs> = async data => {
43-
const result = await subscribe(data)
43+
const captcha = (await captchaRef.current?.executeAsync()) as string
44+
45+
const result = await subscribe({ ...data, captcha })
4446

4547
if (result?.error) {
4648
toast.error('An error occurred! Please try again.')

src/lib/actions.ts

+10-10
Original file line numberDiff line numberDiff line change
@@ -29,17 +29,17 @@ async function checkRecaptcha(recaptcha: string): Promise<boolean> {
2929
return response.success
3030
}
3131

32-
export async function sendEmail(data: ContactFormInputs) {
33-
const result = ContactFormSchema.safeParse(data)
32+
export async function sendEmail(ContactFormInput: ContactFormInputs) {
33+
const result = ContactFormSchema.safeParse(ContactFormInput)
3434

3535
if (result.error) {
3636
return { error: result.error.format() }
3737
}
3838

3939
try {
40-
checkRecaptcha(result.data.captcha)
40+
const { name, email, message, captcha } = result.data
41+
checkRecaptcha(captcha)
4142

42-
const { name, email, message } = result.data
4343
const { data, error } = await resend.emails.send({
4444
from: `${process.env.CONTACT_SENDER_NAME} <${process.env.CONTACT_SENDER_EMAIL}>`,
4545
to: [
@@ -60,20 +60,20 @@ export async function sendEmail(data: ContactFormInputs) {
6060
}
6161
}
6262

63-
export async function subscribe(data: NewsletterFormInputs) {
64-
const result = NewsletterFormSchema.safeParse(data)
63+
export async function subscribe(newwsletterFormInput: NewsletterFormInputs) {
64+
const result = NewsletterFormSchema.safeParse(newwsletterFormInput)
6565

6666
if (result.error) {
6767
return { error: result.error.format() }
6868
}
6969

7070
try {
71-
checkRecaptcha(result.data.captcha)
71+
const { email, captcha } = result.data
72+
checkRecaptcha(captcha)
7273

73-
const { email } = result.data
7474
const { data, error } = await resend.contacts.create({
75-
email: email,
76-
audienceId: process.env.RESEND_AUDIENCE_ID as string
75+
audienceId: process.env.RESEND_AUDIENCE_ID as string,
76+
email: email
7777
})
7878

7979
if (!data || error) {

src/lib/schemas.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,10 @@ export const ContactFormSchema = z.object({
77
.min(2, 'Must be at least 2 characters.'),
88
email: z.string().email().min(1, 'Email is required.'),
99
message: z.string().min(1, 'Message is required.'),
10-
captcha: z.string().min(1, 'Captcha is required.')
10+
captcha: z.string()
1111
})
1212

1313
export const NewsletterFormSchema = z.object({
1414
email: z.string().email('Invalid email.'),
15-
captcha: z.string().min(1, 'Captcha is required.')
15+
captcha: z.string()
1616
})

0 commit comments

Comments
 (0)