diff options
| author | Armand Philippot <git@armandphilippot.com> | 2022-05-06 18:21:16 +0200 |
|---|---|---|
| committer | Armand Philippot <git@armandphilippot.com> | 2022-05-07 15:54:35 +0200 |
| commit | 339c6957fe92c4ec1809159f09c55201d3794c18 (patch) | |
| tree | 74f1dd407c7871c46db6583f2b44cebbe20f7fdd /src/components/organisms/forms/contact-form.tsx | |
| parent | a13022cd4c0a7cf0f00a6db49fad13db22d63dd6 (diff) | |
chore: add a Contact page
Diffstat (limited to 'src/components/organisms/forms/contact-form.tsx')
| -rw-r--r-- | src/components/organisms/forms/contact-form.tsx | 18 |
1 files changed, 13 insertions, 5 deletions
diff --git a/src/components/organisms/forms/contact-form.tsx b/src/components/organisms/forms/contact-form.tsx index 4a6902b..912402c 100644 --- a/src/components/organisms/forms/contact-form.tsx +++ b/src/components/organisms/forms/contact-form.tsx @@ -6,6 +6,13 @@ import { FC, ReactNode, useState } from 'react'; import { useIntl } from 'react-intl'; import styles from './contact-form.module.scss'; +export type ContactFormData = { + email: string; + message: string; + name: string; + subject: string; +}; + export type ContactFormProps = { /** * Set additional classnames to the form wrapper. @@ -16,10 +23,9 @@ export type ContactFormProps = { */ Notice?: ReactNode; /** - * A callback function to send mail. It takes a function as parameter to - * reset the form. + * A callback function to send mail. */ - sendMail: (reset: () => void) => void; + sendMail: (data: ContactFormData, reset: () => void) => Promise<void>; }; /** @@ -80,9 +86,11 @@ const ContactForm: FC<ContactFormProps> = ({ id: 'yN5P+m', }); - const submitHandler = () => { + const submitHandler = async () => { setIsSubmitting(true); - sendMail(resetForm); + sendMail({ email, message, name, subject: object }, resetForm).then(() => + setIsSubmitting(false) + ); }; return ( |
