1234567891011121314151617181920212223242526272829303132333435 |
- import { useMutation } from '@tanstack/react-query';
- import { AxiosProgressEvent, AxiosRequestConfig } from 'axios';
- import { eventsQueryKeys } from '../events-query-keys';
- import { eventsApi, PostUploadTempFileReturn, type PostUploadPhoto } from '../events-api';
- import { type BaseAxiosError } from '../../../../types';
- export interface UseUploadPhotoVariables extends PostUploadPhoto {
- onUploadProgress?: (progressEvent: AxiosProgressEvent) => void;
- }
- export const usePostUploadPhotoMutation = () => {
- return useMutation<
- PostUploadTempFileReturn,
- BaseAxiosError,
- UseUploadPhotoVariables,
- PostUploadTempFileReturn
- >({
- mutationKey: eventsQueryKeys.uploadPhoto(),
- mutationFn: async (variables) => {
- const { token, event_id, file, onUploadProgress } = variables;
- const config: AxiosRequestConfig = {
- onUploadProgress: (progressEvent: AxiosProgressEvent) => {
- if (onUploadProgress) {
- onUploadProgress(progressEvent);
- }
- }
- };
- const response = await eventsApi.uploadPhoto({ token, event_id, file }, config);
- return response.data;
- }
- });
- };
|