mirror of
https://github.com/AmruthPillai/Reactive-Resume.git
synced 2025-11-23 05:01:49 +10:00
feat(i18n): translate error messages
This commit is contained in:
40
apps/client/src/services/resume/update.tsx
Normal file
40
apps/client/src/services/resume/update.tsx
Normal file
@ -0,0 +1,40 @@
|
||||
import { ResumeDto, UpdateResumeDto } from "@reactive-resume/dto";
|
||||
import { useMutation } from "@tanstack/react-query";
|
||||
import { AxiosResponse } from "axios";
|
||||
import debounce from "lodash.debounce";
|
||||
|
||||
import { axios } from "@/client/libs/axios";
|
||||
import { queryClient } from "@/client/libs/query-client";
|
||||
|
||||
export const updateResume = async (data: UpdateResumeDto) => {
|
||||
const response = await axios.patch<ResumeDto, AxiosResponse<ResumeDto>, UpdateResumeDto>(
|
||||
`/resume/${data.id}`,
|
||||
data,
|
||||
);
|
||||
|
||||
queryClient.setQueryData<ResumeDto>(["resume", { id: response.data.id }], response.data);
|
||||
|
||||
queryClient.setQueryData<ResumeDto[]>(["resumes"], (cache) => {
|
||||
if (!cache) return [response.data];
|
||||
return cache.map((resume) => {
|
||||
if (resume.id === response.data.id) return response.data;
|
||||
return resume;
|
||||
});
|
||||
});
|
||||
|
||||
return response.data;
|
||||
};
|
||||
|
||||
export const debouncedUpdateResume = debounce(updateResume, 500);
|
||||
|
||||
export const useUpdateResume = () => {
|
||||
const {
|
||||
error,
|
||||
isPending: loading,
|
||||
mutateAsync: updateResumeFn,
|
||||
} = useMutation({
|
||||
mutationFn: updateResume,
|
||||
});
|
||||
|
||||
return { updateResume: updateResumeFn, loading, error };
|
||||
};
|
||||
Reference in New Issue
Block a user