Skip to content
Snippets Groups Projects
usePartnersIssue.tsx 1.02 KiB
Newer Older
  • Learn to ignore specific revisions
  • import { useMutation, useQuery, useQueryClient } from '@tanstack/react-query'
    import { AxiosRequestConfig } from 'axios'
    import { fetchPartnersIssue, savePartnersInfo } 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 }) =>
          savePartnersInfo(partnersInfo, axiosHeaders),
    
        onSuccess: () => {
          queryClient.invalidateQueries({ queryKey: [queryKeys.partnersInfo] })
        },
      })
    
      const savePartnersIssue = (
    
        partnersInfo: IPartnersInfo,
    
        axiosHeaders: AxiosRequestConfig
      ) => {
    
        mutation.mutate({ partnersInfo, axiosHeaders })
    
      }
    
      return { partnersIssue, savePartnersIssue }
    }