All files / src/features/Merchants/MerchantSidePanel/ApprovalFlowPanel/components/AccountOverview SponsorOverviewActions.tsx

20% Statements 1/5
0% Branches 0/2
0% Functions 0/1
20% Lines 1/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 61 62 63 64 65 66 67 68 69 70 71 72 73 74                                                21x                                                                                                  
import { useMerchantSidePanelContext } from "@features/Merchants/MerchantSidePanel/Provider/MerchantSidePanelProvider";
import { Box, Stack } from "@mui/material";
import GiveAssignButton from "@shared/AssignButton/GiveAssignButton";
import GiveButton from "@shared/Button/GiveButton";
import { checkPortals } from "@utils/routing";
import { useUpdateMerchantStatus } from "../../hooks/useUpdateMerchantStatus";
import useAssigneeManagedByAcquirer from "@hooks/useAssigneeManagedByAcquirer";
 
type Props = {
  assignee: {
    underwriterID: number | undefined;
    underwriterName: string | undefined;
    underwriterEmail: string | undefined;
    underwriterImageURL: string | undefined;
    underwriterSetByAcquirer: boolean | undefined;
  };
  handleChangeAssignee?: (
    oldAssignee: number | undefined,
    newAssignee: string,
    assigneeType?: string,
    onSuccess?: () => void,
  ) => void;
};
 
const SponsorOverviewActions = ({ assignee, handleChangeAssignee }: Props) => {
  const { data } = useMerchantSidePanelContext();
  const { handleSponsorApprove, handleSponsorDecline } =
    useUpdateMerchantStatus({
      merchantId: data?.merchantInfo?.merchantID,
      merchantName: data?.merchantInfo?.merchantName,
      statusName: data?.status?.statusName,
      merchantImageURL: data?.merchantInfo?.imageURL,
    });
 
  const { isManagedByAcquirer } = useAssigneeManagedByAcquirer({
    underwriterSetByAcquirer: Boolean(assignee.underwriterSetByAcquirer),
  });
 
  return (
    <Stack direction="row" justifyContent="space-between">
      {isManagedByAcquirer ? (
        <div />
      ) : (
        <GiveAssignButton
          title="Assign"
          type="sponsor"
          data={{
            accID: data?.merchantInfo?.merchantID,
            ...assignee,
          }}
          showCaretIcon={false}
          onChange={handleChangeAssignee}
        />
      )}
      <Stack direction="row" gap="12px">
        <GiveButton
          label="Decline"
          color="destructive"
          variant="ghost"
          size="small"
          onClick={handleSponsorDecline}
        />
        <GiveButton
          label="Approve"
          size="small"
          onClick={handleSponsorApprove}
        />
      </Stack>
    </Stack>
  );
};
 
export default SponsorOverviewActions;