/* This is the contact component. It will allow your user to send you an email. We use Sendgrid by default and you'll need to check /api/sendgrid.js and don't forget to add the environment variables. If you want to change the email provider, don't hesitate to create a new api route and change the axios.post here, line 18. */ import axios, { AxiosError } from 'axios'; import { toast } from 'react-toastify'; const sendEmail = async (): Promise => { const name = (document.querySelector('#name') as HTMLInputElement).value; const email = (document.querySelector('#email') as HTMLInputElement).value; const message = (document.querySelector('#message') as HTMLInputElement) .value; interface EmailData { success: boolean; message: string; } interface ErrorAxios { data: { error: string; success: boolean; }; } if (name && email && message) { try { const mail = await axios.post('/api/sendgrid', { email, name, message, }); if (mail.data.success === true) { toast.success(mail.data.message); (document.querySelector('#name') as HTMLInputElement).value = ''; (document.querySelector('#email') as HTMLInputElement).value = ''; (document.querySelector('#message') as HTMLInputElement).value = ''; } } catch (error: unknown) { const errorChecked = error as AxiosError; const errorMessage = errorChecked.response as ErrorAxios; toast.error(errorMessage.data.error); } } else { toast.info('Please fill all the fields ', { position: 'top-center', autoClose: 2000, hideProgressBar: true, closeOnClick: true, pauseOnHover: true, draggable: true, progress: undefined, }); } }; const Contact = (): JSX.Element => { return (

Contact

Do you have a question about SupaNexTail? A cool feature you'd like us to integrate? A bug to report? Don't hesitate!

Your Name

Your email

Message