Newer
Older
import { useMutation, useQuery, useQueryClient } from '@tanstack/react-query'
import { AxiosRequestConfig } from 'axios'
import { fetchCustomPopup, putCustomPopup } from '../API'
import { ICustomPopup } from '../models/customPopup.model'
import { queryKeys } from './query-keys'
export const useCustomPopup = () => {
const queryClient = useQueryClient()
const customPopup = useQuery({
queryKey: [queryKeys.customPopup],
queryFn: fetchCustomPopup,
})
const mutation = useMutation<
void,
unknown,
{ customPopup: ICustomPopup; axiosHeaders: AxiosRequestConfig }
>({
mutationFn: ({ customPopup, axiosHeaders }) =>
putCustomPopup(customPopup, axiosHeaders),
onSuccess: () =>
queryClient.invalidateQueries({ queryKey: [queryKeys.customPopup] }),
})
const saveCustomPopup = (
customPopup: ICustomPopup,
axiosHeaders: AxiosRequestConfig
) => {
mutation.mutate({ customPopup, axiosHeaders })
}
return { customPopup, saveCustomPopup }