Skip to content
Snippets Groups Projects
usePartnersIssue.tsx 1.01 KiB
Newer Older
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 }
}