36 lines
1.1 KiB
TypeScript
36 lines
1.1 KiB
TypeScript
import { useQuery, useMutation, useQueryClient } from "@tanstack/react-query";
|
|
import { useAuthToken } from "../hooks/use-root-data";
|
|
import { UserProfileUpdate } from "../../src/api/types";
|
|
import { createUserManagementApi } from "~/utils/api-client-factory";
|
|
|
|
export function useServiceGetProfile() {
|
|
const token = useAuthToken();
|
|
const response = useQuery({
|
|
enabled: !!token,
|
|
retry: 1,
|
|
retryDelay: 3000,
|
|
refetchOnWindowFocus: false,
|
|
queryKey: ["getProfileService"],
|
|
queryFn: async () => {
|
|
const userApi = createUserManagementApi(token);
|
|
return await userApi.apiUserV1ProfileList();
|
|
},
|
|
});
|
|
|
|
return { ...response };
|
|
}
|
|
|
|
export function useServiceUpdateProfile(profileData: UserProfileUpdate) {
|
|
const token = useAuthToken();
|
|
const queryClient = useQueryClient();
|
|
return useMutation({
|
|
mutationFn: async () => {
|
|
const userApi = createUserManagementApi(token);
|
|
return await userApi.apiUserV1ProfilePartialUpdate({ data: profileData });
|
|
},
|
|
onSuccess: () => {
|
|
queryClient.invalidateQueries({ queryKey: ["getProfileService"] });
|
|
},
|
|
});
|
|
}
|