All files / src/components/Merchants/MerchantPreview/MerchantAgreement GiveSettingsAgreementPanel.tsx

100% Statements 4/4
100% Branches 5/5
100% Functions 1/1
100% Lines 4/4

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                                      4x 44x 44x       44x                                                          
import useNiceModal from "@common/Modal/ModalFactory/hooks/useNiceModal";
import { CAMPAIGN_PANEL_WIDTH } from "@common/CampaignCard/CampaignDetailsModal/useCampaignModal";
import MerchantAgreementHeader from "./MerchantAgreementHeaderV2";
import { useMerchantDataPreview } from "../hooks/useMerchantDataPreview";
import {
  SidePanelBodyWrapper,
  SidePanelContainerWrapper,
} from "@shared/SidePanel/SidePanelAtoms";
import AgreementStatusWrapper from "features/Merchants/MerchantSidePanel/AgreementAndSnapshot/Agreement/wraper/AgreementStatusWrapper";
import GiveSidePanel from "@shared/SidePanel/GiveSidePanel";
import { LoadingSkeletons as MerchantAgreementSkeleton } from "features/Merchants/MerchantSidePanel/AgreementAndSnapshot/Agreement/AgreementPanel";
import GiveProviderAgreementContent from "./GiveProviderAgreementContent";
import GiveMerchantAgreementContent from "./GiveMerchantAgreementContent";
 
type Props = {
  id: number;
  isEnterprise?: boolean;
};
//AGREEMENT USED IN MERCHANT AND PROVIDER SETTINGS
const GiveSettingsAgreementPanel = ({ id, isEnterprise = false }: Props) => {
  const { open, onClose } = useNiceModal();
  const { data, isLoading: isLoadingDataPreview } = useMerchantDataPreview({
    id,
    isEnterprise,
  });
  return (
    <GiveSidePanel width={CAMPAIGN_PANEL_WIDTH} open={open} onClose={onClose}>
      {isLoadingDataPreview ? (
        <MerchantAgreementSkeleton />
      ) : (
        <SidePanelContainerWrapper data-testid="merchant-agreement-container">
          <MerchantAgreementHeader
            onClose={onClose}
            isEnterprise={isEnterprise}
          />
          <SidePanelBodyWrapper>
            {/* context is passed down to each child as well */}
            <AgreementStatusWrapper
              defaultContext={{ data, id }}
              isEnterprise={isEnterprise}
            >
              {isEnterprise ? (
                <GiveProviderAgreementContent data={data} isSidepanel/>
              ) : (
                <GiveMerchantAgreementContent data={data} isSidepanel />
              )}
            </AgreementStatusWrapper>
          </SidePanelBodyWrapper>
        </SidePanelContainerWrapper>
      )}
    </GiveSidePanel>
  );
};
export default GiveSettingsAgreementPanel;