All files / src/hooks/merchant-api/customers useUploadCustomerImage.tsx

6.66% Statements 1/15
0% Branches 0/2
0% Functions 0/4
7.14% Lines 1/14

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43            457x                                                                        
import { customInstance } from "@services/api";
import { useMutation, useQueryClient } from "react-query";
import { AxiosError } from "axios";
import { buildAccountsUrl } from "@services/api/utils.api";
import { useUploadSingleImage as useUploadSingleImageNew } from "@hooks/upload-api/uploadHooks";
 
export const useUploadCustomerImage = () => {
  const { handleUpload, isLoading } = useUploadSingleImageNew();
 
  const queryClient = useQueryClient();
 
  const createImageMutation = useMutation((data: any) => {
    return customInstance({
      url: buildAccountsUrl("media-items"),
      method: "POST",
      data,
    });
  });
  const handlePostImage = async (file: File) => {
    const tempUrl = await handleUpload({ file, formType: "customer_avatar" });
 
    if (!tempUrl) return "";
 
    const promise = await createImageMutation.mutateAsync(
      {
        label: "main_pic",
        url: tempUrl,
      },
      {
        onError: (error: unknown) => {
          const axiosError = error as AxiosError;
          console.log("errorMessage = ", axiosError);
        },
      },
    );
 
    await queryClient.invalidateQueries("get-all-media-items");
    return promise.URL;
  };
 
  return { handlePostImage, isLoading };
};