All files / src/features/Underwriting/UnderwritingCard UnderwritingCard.tsx

100% Statements 7/7
75% Branches 6/8
100% Functions 1/1
100% Lines 7/7

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                      21x 22x 22x             22x               22x   22x         22x                                                              
import { useComponentVisibilityOnStatus } from "@features/Merchants/MerchantSidePanel/hooks/useComponentVisibilityOnStatus";
import { IChipProps } from "@shared/Chip/GiveChip";
import { useAppTheme } from "@theme/v2/Provider";
import { useConfigureChallenges } from "features/Merchants/MerchantSidePanel/WithRepository/Challenges/useChallengesRepository";
import { WithRepositoryProvider } from "features/Merchants/MerchantSidePanel/WithRepository/WithRepositoryContext";
import UnderwritingCardHeader from "./UnderwritingCardHeader";
import UnderwritingChallengeCategories from "./UnderwritingChallengeCategories";
import { CardContainer } from "./UnderwritingCard.style";
import UnderwritingCardBody from "./UnderwritingCardBody";
import { useMerchantSidePanelContext } from "features/Merchants/MerchantSidePanel/Provider/MerchantSidePanelProvider";
 
const UnderwritingCard = () => {
  const { palette } = useAppTheme();
  const { configs, repositories } = useConfigureChallenges();
  const {
    data,
    id,
    isUnderwritingView,
    openUnderwritingView,
    isOnboardingView,
  } = useMerchantSidePanelContext();
  const {
    underwritingScorePercentage = 0,
    accID,
    underwriterName,
    underwriterEmail,
    underwriterImageURL,
    underwriterSetByAcquirer,
  } = data?.status || {};
 
  const { status } = useComponentVisibilityOnStatus({
    data: data?.status,
    isRebranding: true,
  });
 
  return (
    <WithRepositoryProvider configs={configs} repositories={repositories}>
      <CardContainer backgroundColor={palette.surface?.primary}>
        <UnderwritingCardHeader
          underwritingScorePercentage={underwritingScorePercentage}
          merchantId={accID}
          status={status as IChipProps}
        />
        {!isUnderwritingView && !isOnboardingView && (
          <UnderwritingCardBody
            underwriterName={underwriterName}
            underwriterEmail={underwriterEmail}
            underwriterImageURL={underwriterImageURL}
            underwriterSetByAcquirer={underwriterSetByAcquirer}
            id={id}
            handleManageUnderwriting={openUnderwritingView}
            isOnboarding={status?.label === "Onboarding"}
          />
        )}
        <UnderwritingChallengeCategories
          allChallengesCompleted={underwritingScorePercentage >= 80}
          merchantId={accID}
          merchantName={data?.merchantInfo?.merchantName}
          show={isUnderwritingView || isOnboardingView}
        />
      </CardContainer>
    </WithRepositoryProvider>
  );
};
 
export default UnderwritingCard;