quivr/frontend/app/contact/hooks/usePostContactSales.ts
Matthieu Jacq f91247c6c7
feat: contact sales submission (#1473)
# Description

Epic: #1232 
US: #1446

Send email address and message content to the backend. Display a loader
in loading state and a toast message on error.
2023-10-24 13:54:28 +02:00

34 lines
808 B
TypeScript

import { useMutation, UseMutationResult } from "@tanstack/react-query";
import { useTranslation } from "react-i18next";
import { useAxios } from "@/lib/hooks";
import { useToast } from "@/lib/hooks/useToast";
interface ContactSalesDto {
customer_email: string;
content: string;
}
export const usePostContactSales = (): UseMutationResult<
void,
unknown,
ContactSalesDto
> => {
const { axiosInstance } = useAxios();
const toast = useToast();
const { t } = useTranslation("contact", { keyPrefix: "form" });
return useMutation({
mutationKey: ["contactSales"],
mutationFn: async (data) => {
await axiosInstance.post("/contact", data);
},
onError: () => {
toast.publish({
text: t("sending_mail_error"),
variant: "danger",
});
},
});
};