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 | 21x 48x 48x 48x 48x 48x 48x 48x 48x 48x 48x 48x 48x 816x | import { Fragment } from "react";
import SectionCardBase from "@shared/SidePanel/components/SectionCard/SectionCardBase";
import { Grid } from "@mui/material";
import GiveDivider from "@shared/GiveDivider/GiveDivider";
import { GiveSectionItem } from "../GiveSectionItem";
import NiceModal from "@ebay/nice-modal-react";
import {
EDIT_MERCHANT_INFO_MODAL_V2,
EDIT_PROVIDER_INFO_MODAL,
} from "modals/modal_names";
import { useMerchantSidePanelContext } from "features/Merchants/MerchantSidePanel/Provider/MerchantSidePanelProvider";
import { useConversationsModal } from "features/Minibuilders/Conversations/hooks/useConversationsModal";
import { useEnterprisePermissions } from "@components/AcquirerEnterprises/CreateEnterprise/hooks/useEnterprisePermissions";
import { useAccessControl } from "features/Permissions/AccessControl";
import RESOURCE_BASE, {
EDIT_DENY_MESSAGE,
OPERATIONS,
} from "@constants/permissions";
import { checkPortals } from "@utils/routing";
import {
getMerchantProviderText,
MERCHANT_FILE_TEXT,
} from "@constants/stringConstants";
import { useGetFeatureFlagValues } from "FeatureFlags/useGetFeatureFlagValues";
import { ISectionItem } from "@features/TransactionPanel/types";
const MerchantInfoSection = ({ items }: { items: ISectionItem[] }) => {
const { id, data } = useMerchantSidePanelContext();
const { isAcquirerPortal } = checkPortals();
const { openConversationHandler } = useConversationsModal();
const { isNewConversationsEnabled } = useGetFeatureFlagValues();
const { merchant_underwriting, modify_merchant } = useEnterprisePermissions();
const { isProvider } = useMerchantSidePanelContext();
const isUpdateMCCAllowed = useAccessControl({
resource: isProvider ? RESOURCE_BASE.ENTERPRISE : RESOURCE_BASE.MERCHANT,
operation: OPERATIONS.UPDATE,
});
const editModalName = isProvider
? EDIT_PROVIDER_INFO_MODAL
: EDIT_MERCHANT_INFO_MODAL_V2;
const actions = {
handleOpenConversation: (e: React.MouseEvent) => {
e.stopPropagation();
openConversationHandler({
id: 0,
name: MERCHANT_FILE_TEXT,
paths: [],
});
},
handleEdit: () =>
NiceModal.show(editModalName, {
id,
data: data.merchantInfo,
status: data.status,
}),
};
const disableEdit = !isUpdateMCCAllowed || !modify_merchant;
const disabledActions = {
handleOpenConversation: {
hidden:
(!merchant_underwriting && !isAcquirerPortal) ||
isNewConversationsEnabled,
},
handleEdit: {
disabled: disableEdit,
tooltipTitle: EDIT_DENY_MESSAGE,
disableTooltip: !disableEdit,
hidden: disableEdit && !isAcquirerPortal,
},
};
return (
<SectionCardBase
leftTitle={getMerchantProviderText(!isProvider, true)}
actions={actions}
disabledActions={disabledActions}
>
<Grid container spacing={2}>
{items.map((item, index) => (
<Fragment key={index}>
{item.split && (
<Grid container item xs={12} padding="0 0 0 16px !important">
<GiveDivider />
</Grid>
)}
<GiveSectionItem key={index} item={item} />
</Fragment>
))}
</Grid>
</SectionCardBase>
);
};
export default MerchantInfoSection;
|