err: "Error while sending one or more emails in form submission id: undefined.
const {
id: formID,
submitButtonLabel,
confirmationType,
redirect,
fields,
confirmationMessage,
} = form
const [name, email, message, budget, found_us] = fields
const onSubmit = useCallback(
(data) => {
const submitForm = async () => {
setError(undefined)
const dataToSend = Object.entries(data).map(([name, value]) => ({
field: name,
value,
}))
try {
const req = await fetch(
`${process.env.NEXT_PUBLIC_CMS_URL}/api/form-submissions`,
{
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({
form: formID,
submissionData: dataToSend,
}),
}
)
const res = await req.json()
if (req.status >= 400) {
setIsLoading(false)
setError({
status: res.status,
message: res.errors?.[0]?.message || 'Internal Server Error',
})
return
}
setIsLoading(false)
setHasSubmitted(true)
if (confirmationType === 'redirect' && redirect) {
const { url } = redirect
const redirectUrl = url
if (redirectUrl) router.push(redirectUrl)
}
} catch (err) {
console.warn(err)
setIsLoading(false)
setError({
message: 'Something went wrong.',
})
}
}
submitForm()
},
[router, formID, redirect, confirmationType]
)