.
This commit is contained in:
parent
ad06b45f02
commit
ddb94d7f13
@ -14,7 +14,7 @@
|
|||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@dnd-kit/core": "^6.1.0",
|
"@dnd-kit/core": "^6.1.0",
|
||||||
"@dnd-kit/sortable": "^8.0.0",
|
"@dnd-kit/sortable": "^8.0.0",
|
||||||
"@hookform/resolvers": "^3.5.0",
|
"@hookform/resolvers": "^3.9.0",
|
||||||
"@radix-ui/react-accordion": "^1.1.2",
|
"@radix-ui/react-accordion": "^1.1.2",
|
||||||
"@radix-ui/react-alert-dialog": "^1.0.5",
|
"@radix-ui/react-alert-dialog": "^1.0.5",
|
||||||
"@radix-ui/react-aspect-ratio": "^1.0.3",
|
"@radix-ui/react-aspect-ratio": "^1.0.3",
|
||||||
|
|||||||
@ -12,7 +12,6 @@ import {
|
|||||||
CardTitle,
|
CardTitle,
|
||||||
Form,
|
Form,
|
||||||
} from "@/ui";
|
} from "@/ui";
|
||||||
import { joiResolver } from "@hookform/resolvers/joi";
|
|
||||||
|
|
||||||
import { t } from "i18next";
|
import { t } from "i18next";
|
||||||
import { AlertCircleIcon } from "lucide-react";
|
import { AlertCircleIcon } from "lucide-react";
|
||||||
@ -22,9 +21,8 @@ import { Trans } from "react-i18next";
|
|||||||
|
|
||||||
import { useUnsavedChangesNotifier } from "@/lib/hooks";
|
import { useUnsavedChangesNotifier } from "@/lib/hooks";
|
||||||
import { cn } from "@/lib/utils";
|
import { cn } from "@/lib/utils";
|
||||||
|
import { useToast } from "@/ui/use-toast";
|
||||||
import { IUpdateProfile_Request_DTO } from "@shared/contexts";
|
import { IUpdateProfile_Request_DTO } from "@shared/contexts";
|
||||||
import Joi from "joi";
|
|
||||||
import { toast } from "react-toastify";
|
|
||||||
import { useSettings } from "./hooks";
|
import { useSettings } from "./hooks";
|
||||||
|
|
||||||
type SettingsDataForm = IUpdateProfile_Request_DTO;
|
type SettingsDataForm = IUpdateProfile_Request_DTO;
|
||||||
@ -32,6 +30,7 @@ type SettingsDataForm = IUpdateProfile_Request_DTO;
|
|||||||
export const SettingsEditor = () => {
|
export const SettingsEditor = () => {
|
||||||
const [activeSection, setActiveSection] = useState("profile");
|
const [activeSection, setActiveSection] = useState("profile");
|
||||||
const { useOne, useUpdate } = useSettings();
|
const { useOne, useUpdate } = useSettings();
|
||||||
|
const { toast } = useToast();
|
||||||
|
|
||||||
const { data, status, error: queryError } = useOne();
|
const { data, status, error: queryError } = useOne();
|
||||||
|
|
||||||
@ -56,7 +55,7 @@ export const SettingsEditor = () => {
|
|||||||
mode: "onBlur",
|
mode: "onBlur",
|
||||||
values: data?.dealer,
|
values: data?.dealer,
|
||||||
defaultValues,
|
defaultValues,
|
||||||
resolver: joiResolver(
|
/*resolver: joiResolver(
|
||||||
Joi.object({
|
Joi.object({
|
||||||
contact_information: Joi.string().optional().allow(null).allow("").default(""),
|
contact_information: Joi.string().optional().allow(null).allow("").default(""),
|
||||||
default_payment_method: Joi.string().optional().allow(null).allow("").default(""),
|
default_payment_method: Joi.string().optional().allow(null).allow("").default(""),
|
||||||
@ -68,7 +67,7 @@ export const SettingsEditor = () => {
|
|||||||
scale: Joi.number(),
|
scale: Joi.number(),
|
||||||
}).required(),
|
}).required(),
|
||||||
})
|
})
|
||||||
),
|
),*/
|
||||||
});
|
});
|
||||||
|
|
||||||
const { formState, reset, getValues, handleSubmit } = form;
|
const { formState, reset, getValues, handleSubmit } = form;
|
||||||
@ -79,16 +78,17 @@ export const SettingsEditor = () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
const onSubmit: SubmitHandler<SettingsDataForm> = async (data) => {
|
const onSubmit: SubmitHandler<SettingsDataForm> = async (data) => {
|
||||||
|
console.log("hola");
|
||||||
mutate(data, {
|
mutate(data, {
|
||||||
onError: (error) => {
|
onError: (error) => {
|
||||||
console.debug(error);
|
console.debug(error);
|
||||||
toast.error(error.message);
|
toast({ title: "Error", description: error.message });
|
||||||
//alert(error.message);
|
//alert(error.message);
|
||||||
},
|
},
|
||||||
//onSettled: () => {},
|
//onSettled: () => {},
|
||||||
onSuccess: () => {
|
onSuccess: () => {
|
||||||
reset(getValues());
|
reset(getValues());
|
||||||
toast.success("Ajustes guardados");
|
toast({ description: "Ajustes guardados" });
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
import { useOne, useSave } from "@/lib/hooks/useDataSource";
|
import { useOne } from "@/lib/hooks/useDataSource";
|
||||||
import { TDataSourceError } from "@/lib/hooks/useDataSource/types";
|
import { TDataSourceError } from "@/lib/hooks/useDataSource/types";
|
||||||
import { useDataSource } from "@/lib/hooks/useDataSource/useDataSource";
|
import { useDataSource } from "@/lib/hooks/useDataSource/useDataSource";
|
||||||
import { useQueryKey } from "@/lib/hooks/useQueryKey";
|
import { useQueryKey } from "@/lib/hooks/useQueryKey";
|
||||||
@ -7,6 +7,7 @@ import {
|
|||||||
IUpdateProfile_Request_DTO,
|
IUpdateProfile_Request_DTO,
|
||||||
IUpdateProfileResponse_DTO,
|
IUpdateProfileResponse_DTO,
|
||||||
} from "@shared/contexts";
|
} from "@shared/contexts";
|
||||||
|
import { useMutation, useQueryClient } from "@tanstack/react-query";
|
||||||
|
|
||||||
export type UseSettingsGetParamsType = {
|
export type UseSettingsGetParamsType = {
|
||||||
enabled?: boolean;
|
enabled?: boolean;
|
||||||
@ -28,15 +29,24 @@ export const useSettings = (params?: UseSettingsGetParamsType) => {
|
|||||||
}),
|
}),
|
||||||
...params,
|
...params,
|
||||||
}),
|
}),
|
||||||
useUpdate: () =>
|
useUpdate: () => {
|
||||||
useSave<IUpdateProfileResponse_DTO, TDataSourceError, IUpdateProfile_Request_DTO>({
|
const queryClient = useQueryClient();
|
||||||
|
|
||||||
|
return useMutation<IUpdateProfileResponse_DTO, TDataSourceError, IUpdateProfile_Request_DTO>({
|
||||||
mutationKey: keys().data().resource("settings").action("one").id("me").params().get(),
|
mutationKey: keys().data().resource("settings").action("one").id("me").params().get(),
|
||||||
mutationFn: (data) =>
|
mutationFn: (data) => {
|
||||||
dataSource.updateOne({
|
return dataSource.updateOne({
|
||||||
resource: "profile",
|
resource: "profile",
|
||||||
data,
|
data,
|
||||||
id: "",
|
id: "",
|
||||||
}),
|
});
|
||||||
}),
|
},
|
||||||
|
onSuccess: () => {
|
||||||
|
queryClient.invalidateQueries({
|
||||||
|
queryKey: ["data", "default", "settings"],
|
||||||
|
});
|
||||||
|
},
|
||||||
|
});
|
||||||
|
},
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user