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 | 4x 135x 135x 135x 135x 135x 135x 135x 135x 135x 135x 19x 135x 21x 135x | import { TableColumnType } from "@common/Table";
import { QKEY_LIST_ENTERPRISE_STATS } from "@constants/queryKeys";
import { Box } from "@mui/material";
import { useAppSelector } from "@redux/hooks";
import { selectMerchantTab } from "@redux/slices/enterprise/merchants";
import { useCustomThemeV2 } from "@theme/hooks/useCustomThemeV2";
import { useUnderwriterPermissions } from "features/Permissions/AccessControl/hooks";
import { useMemo } from "react";
import { useQueryClient } from "react-query";
import { useDispatch } from "react-redux";
import { getSelectedTab } from "features/Merchants/MerchantsTable/utils";
import GiveAssignButton from "@shared/AssignButton/GiveAssignButton";
import { AssigneeInfos } from "@shared/AssignButton/GiveAssignButton.types";
import GiveUnderwritingScore from "@shared/UnderwritingScore/GiveUnderwritingScore";
import { setOpeningOptions } from "@redux/slices/merchantPreview";
import { useEnterprisePermissions } from "@components/AcquirerEnterprises/CreateEnterprise/hooks/useEnterprisePermissions";
import { MerchantData } from "@hooks/enterprise-api/account/types";
import useUnderwritingColumns from "@features/Merchants/MerchantsTable/hooks/useUnderwritingColumns";
const useUnderwritingEnterpriseTabColumns = () => {
const dispatch = useDispatch();
const { isWideView } = useCustomThemeV2();
const { merchant_underwriting } = useEnterprisePermissions();
const { isViewUnderwritingAllowed } = useUnderwriterPermissions();
const queryClient = useQueryClient();
const tab = useAppSelector(selectMerchantTab);
const selectedTab = getSelectedTab(tab);
const isUnderwritingSelected = selectedTab === "underwriting";
const { taxIdCol, KYBCol, assignedCol, underwritingProgressCol } =
useUnderwritingColumns({ isEnterprise: true });
const assignmentCol = useMemo(
() => ({
key: "assignment",
sortable: false,
columnWidth: 1,
title: "Assignee",
hideColumn: !isUnderwritingSelected || !isWideView,
renderColumn: (row: MerchantData) => (
<GiveAssignButton
data={row as AssigneeInfos}
type="underwriting_admin"
disabled={false}
handleClick={() => {
queryClient.invalidateQueries(QKEY_LIST_ENTERPRISE_STATS);
}}
transformOrigin={{
vertical: -45,
horizontal: "left",
}}
/>
),
}),
[isWideView],
);
const underwritingScoreCol = useMemo(
() => ({
key: "underwritingScorePercentage,-accID",
sortable: true,
title: "Underwriting Score",
hideColumn: !isUnderwritingSelected,
columnWidth: 1.5,
headerPosition: "center" as TableColumnType["headerPosition"],
renderColumn: (row: MerchantData) => {
return (
<Box
width={isWideView ? "140px" : "auto"}
sx={{ ...(isWideView && { margin: "0 auto" }) }}
>
<GiveUnderwritingScore
statusDisplayName={row?.statusDisplayName}
score={row?.underwritingScorePercentage}
canProcessMoney={row?.canProcessMoney}
canTransferMoney={row?.canTransferMoney}
alwaysDisplayProgressBars
pendingScore={row.underwritingPendingChallengesPercentage}
merchant_underwriting={merchant_underwriting}
isViewUnderwritingAllowed={isViewUnderwritingAllowed}
handleClick={() =>
dispatch(setOpeningOptions({ underwriter: true }))
}
hideIcons
pendingChallenges={row?.underwritingPendingChallengesCount}
/>
</Box>
);
},
}),
[isWideView, isUnderwritingSelected],
);
return {
assignmentCol,
underwritingScoreCol,
taxIdCol,
KYBCol,
assignedCol,
underwritingProgressCol,
};
};
export default useUnderwritingEnterpriseTabColumns;
|