aboutsummaryrefslogtreecommitdiffstats
path: root/src/components/organisms/forms/contact-form.tsx
diff options
context:
space:
mode:
authorArmand Philippot <git@armandphilippot.com>2022-05-06 18:21:16 +0200
committerArmand Philippot <git@armandphilippot.com>2022-05-07 15:54:35 +0200
commit339c6957fe92c4ec1809159f09c55201d3794c18 (patch)
tree74f1dd407c7871c46db6583f2b44cebbe20f7fdd /src/components/organisms/forms/contact-form.tsx
parenta13022cd4c0a7cf0f00a6db49fad13db22d63dd6 (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.tsx18
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 (