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 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 | 29x 1094x 17x 17x 17x 17x 17x 17x 1094x 17x 17x 17x 17x 17x 17x 17x 17x 17x 1094x | import { FilterValue } from "@pages/ManageMoney/Modal/filter.types";
import {
formatArrayFilter,
formatArrayNegativeFilter,
formatObjectArrayFilter,
joinWithColon,
joinWithSemicolon,
} from "../utils";
import { endpointNames } from "../constants";
export const useFormatDisputeFilters = () => {
const formatDisputeCaseTypeFilter = (caseTypes: FilterValue[]) => {
const customMSPTypes = [
"1st_chargeback",
"fulfillment",
"pre_arbitration",
"re_presentment",
"arbitration",
"reversal",
];
const mspCaseTypes = caseTypes?.filter((item: any) =>
customMSPTypes.includes(item?.value),
);
const stageCaseTypes = caseTypes?.filter(
(item: any) => !customMSPTypes.includes(item?.value),
);
const mspCaseFilter =
mspCaseTypes?.length > 0
? formatObjectArrayFilter({
array: mspCaseTypes as any[],
key: endpointNames.disputeMSPCaseType,
})
: "";
const stageFilter =
stageCaseTypes?.length > 0
? formatObjectArrayFilter({
array: stageCaseTypes as any[],
key: endpointNames.disputeCaseType,
})
: "";
return joinWithColon(mspCaseFilter, stageFilter);
};
const formatDisputeStatusFilter = (status: FilterValue[]) => {
const customStatuses = ["won", "lost", "open", "pending"];
const filteredDisputeStatus = status?.filter(
(item) => !customStatuses.includes(item as string),
);
const openedDisputeStatus = status?.filter((item) => item === "open");
const pendingDisputeStatus = status?.filter((item) => item === "pending");
const filteredDisputeStatusOutcome = status?.filter(
(item) => item === "won" || item === "lost",
);
const openFilter =
openedDisputeStatus?.length > 0
? joinWithSemicolon(
formatArrayNegativeFilter({
array: [""] as string[],
key: endpointNames.disputePreChargebackRefundTransactionID,
}),
formatArrayFilter({
array: ["pending"] as string[],
key: endpointNames.disputeStatus,
}),
)
: "";
const pendingFilter =
pendingDisputeStatus?.length > 0
? joinWithSemicolon(
formatArrayFilter({
array: [""] as string[],
key: endpointNames.disputePreChargebackRefundTransactionID,
}),
formatArrayFilter({
array: ["pending"] as string[],
key: endpointNames.disputeStatus,
}),
)
: "";
const outcomeFilter =
filteredDisputeStatusOutcome?.length > 0
? joinWithSemicolon(
formatArrayFilter({
array: ["closed"] as any,
key: endpointNames.disputeStatus,
}),
formatArrayFilter({
array: (filteredDisputeStatusOutcome || []) as string[],
key: endpointNames.disputeStatusOutcome,
}),
)
: "";
return joinWithColon(
formatArrayFilter({
array: (filteredDisputeStatus || []) as string[],
key: endpointNames.disputeStatus,
}),
openFilter,
pendingFilter,
outcomeFilter,
);
};
return { formatDisputeStatusFilter, formatDisputeCaseTypeFilter };
};
|