import { BackHistoryButton, FormDatePickerField, FormTextAreaField, FormTextField, } from "@/components"; import { t } from "i18next"; import { ChevronLeft } from "lucide-react"; import { SubmitButton } from "@/components"; import { useWarnAboutChange } from "@/lib/hooks"; import { Button, Form } from "@/ui"; import { ICreateQuote_Request_DTO } from "@shared/contexts"; import { useEffect } from "react"; import { FieldErrors, SubmitErrorHandler, SubmitHandler, useForm } from "react-hook-form"; import { useNavigate } from "react-router-dom"; import { useQuotes } from "./hooks"; interface QuoteDataForm extends ICreateQuote_Request_DTO {} export const QuoteCreate = () => { const navigate = useNavigate(); const { setWarnWhen } = useWarnAboutChange(); const { useCreate } = useQuotes(); const { mutate } = useCreate(); const form = useForm({ defaultValues: { date: new Date(Date.now()).toUTCString(), customer_information: "", reference: "", }, }); const { watch, handleSubmit } = form; useEffect(() => { const subscription = watch((values: any, { type }: { type?: any }) => { if (type === "change") { // Hay cambios en el formulario //setWarnWhen(true); } }); return () => subscription.unsubscribe(); }, [watch, setWarnWhen]); const onSubmit: SubmitHandler = async (formData) => { console.log(JSON.stringify(formData)); try { setWarnWhen(false); mutate(formData, { onSuccess: (data) => { navigate(`/quotes/edit/${data.id}`, { relative: "path", replace: true }); }, }); } finally { //setLoading(false); } }; const onErrors: SubmitErrorHandler = async ( errors: FieldErrors ) => { console.log(errors); }; return (

{t("quotes.create.title")}

); };