import { ErrorOverlay, FormTextAreaField, LoadingOverlay } from "@/components"; import { Alert, AlertDescription, AlertTitle, Button, Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, Form, } from "@/ui"; import { t } from "i18next"; import { AlertCircleIcon } from "lucide-react"; import { useMemo } from "react"; import { SubmitHandler, useForm } from "react-hook-form"; import { Trans } from "react-i18next"; import { IUpdateProfile_Request_DTO } from "@shared/contexts"; import { Link } from "react-router-dom"; import { toast } from "react-toastify"; import { useSettings } from "./hooks"; type SettingsDataForm = IUpdateProfile_Request_DTO; export const SettingsEditor = () => { const { useOne, useUpdate } = useSettings(); const { data, status, error: queryError } = useOne(); const defaultValues = useMemo( () => ({ contact_information: "", default_payment_method: "", default_notes: "", default_legal_terms: "", default_quote_validity: "", }), [] ); const { mutate } = useUpdate(); const form = useForm({ mode: "onBlur", values: data?.dealer, defaultValues, /*resolver: joiResolver( Joi.object({ email: Joi.string() .email({ tlds: { allow: false } }) .required(), password: Joi.string().min(4).alphanum().required(), }), { messages: SpanishJoiMessages, } ),*/ }); const { formState } = form; const { isSubmitting } = formState; const onSubmit: SubmitHandler = async (data) => { console.log(data); mutate(data, { onError: (error) => { console.debug(error); toast.error(error.message); //alert(error.message); }, //onSettled: () => {}, onSuccess: () => { toast("Ajustes guardados"); //clear(); }, }); }; if (isSubmitting) { return ; } if (status === "error") { return ; } if (status !== "success") { return ; } return ( <>

{form.formState.errors.root?.message && ( {form.formState.errors.root?.message} )}
); };