import { useMutation, useQuery, useQueryClient } from '@tanstack/react-query' import { AxiosRequestConfig } from 'axios' import { fetchPartnersIssue, putPartnersInfo } from '../API' import { IPartnersInfo } from '../models/partnersInfo.model' import { queryKeys } from './query-keys' export const usePartnersIssue = () => { const queryClient = useQueryClient() const partnersIssue = useQuery({ queryKey: [queryKeys.partnersInfo], queryFn: fetchPartnersIssue, }) const mutation = useMutation< void, unknown, { partnersInfo: IPartnersInfo; axiosHeaders: AxiosRequestConfig } >({ mutationFn: ({ partnersInfo, axiosHeaders }) => putPartnersInfo(partnersInfo, axiosHeaders), onSuccess: () => queryClient.invalidateQueries({ queryKey: [queryKeys.partnersInfo] }), }) const savePartnersIssue = ( partnersInfo: IPartnersInfo, axiosHeaders: AxiosRequestConfig ) => { mutation.mutate({ partnersInfo, axiosHeaders }) } return { partnersIssue, savePartnersIssue } }