Skip to content
Snippets Groups Projects
usePartnersIssue.tsx 1.01 KiB
Newer Older
  • Learn to ignore specific revisions
  • 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] }),
    
        partnersInfo: IPartnersInfo,
    
        axiosHeaders: AxiosRequestConfig
      ) => {
    
        mutation.mutate({ partnersInfo, axiosHeaders })
    
      }
    
      return { partnersIssue, savePartnersIssue }
    }