Vitron-Front/app/requestHandler/use-profile-hooks.tsx
2026-04-29 01:44:16 +03:30

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"] });
},
});
}