Use tRPC for contact form

This commit is contained in:
Timothy Armes
2023-10-10 11:25:00 +02:00
committed by Owen Rees
parent b8c0188b13
commit 3203c8af58
7 changed files with 111 additions and 183 deletions
-42
View File
@@ -1,42 +0,0 @@
import { Dispatch, FormEvent, SetStateAction } from "react";
import { useTranslations } from "next-intl";
import { clearMessage } from "@/components/InfoMessage";
import sendMail from "@/lib/sendMail";
import { ResponseMessage } from "@/types";
import { errorLog } from "@/utils/logger";
export const handleEmailSubmit = async (
e: FormEvent<HTMLFormElement>,
t: ReturnType<typeof useTranslations>,
setIsSending: Dispatch<SetStateAction<boolean>>,
setResponseMessage: Dispatch<SetStateAction<ResponseMessage>>,
values: Record<string, string>,
resetForm: () => void,
) => {
e.preventDefault();
setIsSending(true);
try {
const response = await sendMail(values);
if (response.status === 250) {
setResponseMessage({
isSuccessful: true,
message: t("success"),
});
resetForm();
clearMessage(setResponseMessage);
setIsSending(false);
}
} catch (error) {
errorLog(error);
setResponseMessage({
isSuccessful: false,
message: t("failure"),
});
clearMessage(setResponseMessage);
setIsSending(false);
}
};