All files / src/features/TransactionPanel/hooks useFalsePositive.tsx

33.33% Statements 6/18
0% Branches 0/2
16.66% Functions 1/6
33.33% Lines 6/18

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 44 45 46 47 48 49 50 51 52 53                            54x 170x 170x 170x                                                 170x               170x    
import { showMessage } from "@common/Toast";
import {
  QKEY_GET_TRANSACTION_STATS,
  QKEY_LIST_RISK_PROFILE_TRANSACTIONS,
  QKEY_PROCESSING_LIST,
  QKEY_PROVIDER_PROCESSING,
  QKEY_RISK_PROFILE,
} from "@constants/queryKeys";
import NiceModal from "@ebay/nice-modal-react";
import { unblockTransaction } from "@services/api/riskProfile/riskProfileActions";
import { useCustomThemeV2 } from "@theme/hooks/useCustomThemeV2";
import { FALSE_POSITIVE_MODAL } from "modals/modal_names";
import { useMutation, useQueryClient } from "react-query";
 
export const useFalsePositive = (merchantId: number, id: string) => {
  const queryClient = useQueryClient();
  const { isMobileView } = useCustomThemeV2();
  const updateFalsePositive = useMutation({
    mutationFn: (originalID?: string) =>
      unblockTransaction(merchantId, originalID || id),
    onSuccess: () => {
      showMessage(
        "Success",
        "Transaction successfully marked as false positive",
        !isMobileView,
        "",
      );
      queryClient.invalidateQueries(QKEY_RISK_PROFILE);
      queryClient.invalidateQueries(QKEY_LIST_RISK_PROFILE_TRANSACTIONS);
      queryClient.invalidateQueries({
        queryKey: ["get-transaction-history"],
      });
      queryClient.invalidateQueries(QKEY_PROVIDER_PROCESSING);
      queryClient.invalidateQueries(QKEY_PROCESSING_LIST);
      queryClient.invalidateQueries(QKEY_GET_TRANSACTION_STATS);
      queryClient.invalidateQueries("get-all-transactions");
    },
    onError: (error) => {
      console.error("Error unblocking transaction:", error);
    },
  });
 
  const handleFalsePositive = async () => {
    NiceModal.show(FALSE_POSITIVE_MODAL, {
      id,
      handleSuccess: async (usedID: string) =>
        await updateFalsePositive.mutate(usedID),
    });
  };
 
  return { updateFalsePositive, handleFalsePositive };
};