All files / src/components/Disputes/DisputesList/hooks useDisputesStats.tsx

100% Statements 5/5
100% Branches 22/22
100% Functions 1/1
100% Lines 5/5

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 54 55 56 57 58 59 60      263x 1136x                         1136x   1136x                                                   1136x                            
import { parseAmount } from "@utils/index";
import { useGetDisputesStats } from "./useGetDisputesStats";
 
export const useDisputesStats = () => {
  const { data, isLoading } = useGetDisputesStats();
 
  const {
    chargebackVolume,
    chargebackVolumeRatio,
    disputeCount,
    chargebackCountRatio,
    openCount,
    friendlyCount,
    friendlyRate,
    fraudCount,
    fraudRate,
    winCount,
  } = data || {};
 
  const stats = [
    {
      title: "Total Chargebacks",
      value: disputeCount || 0,
      ratio: parseAmount((chargebackCountRatio || 0) * 100),
    },
    {
      title: "Open Chargebacks",
      value: openCount || 0,
    },
    {
      title: "Chargeback Wins",
      value: winCount || 0,
    },
    {
      title: "Friendly Chargebacks",
      value: friendlyCount || 0,
      ratio: parseAmount((friendlyRate || 0) * 100),
    },
    {
      title: "Fraud Chargebacks",
      value: fraudCount || 0,
      ratio: parseAmount((fraudRate || 0) * 100),
    },
  ];
 
  return {
    isLoading,
    data: {
      totalChargebackAmount: parseAmount(
        chargebackVolume ? chargebackVolume / 100 : 0,
      ),
      totalChargebackAmountRatio: parseAmount(
        (chargebackVolumeRatio || 0) * 100,
      ),
      stats,
    },
    tabStats: data,
  };
};