All files / src/features/Events/EventDetail/tickets PurchasePlaceholder.tsx

100% Statements 2/2
100% Branches 2/2
100% Functions 1/1
100% Lines 2/2

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                                          1x 3x                                                        
import { Stack } from "@mui/material";
import { XIcon } from "@phosphor-icons/react";
import PanelLoadingSkeleton from "@features/Merchants/MerchantSidePanel/components/PanelLoadingSkeleton";
import GiveIconButton from "@shared/IconButton/GiveIconButton";
import {
  SidePanelBodyWrapper,
  SidePanelContainerWrapper,
} from "@shared/SidePanel/SidePanelAtoms";
import { SidePanelHeaderBase } from "@shared/SidePanel/components/SidePanelHeader/SidePanelHeader";
import GiveText from "@shared/Text/GiveText";
 
type Props = {
  isLoading?: boolean;
  onClose: () => void;
};
 
/**
 * The second panel while its purchase is in flight, or when it could not be
 * read — a close button is the one thing it must always offer, so the merchant
 * is never stuck looking at an empty panel.
 */
const PurchasePlaceholder = ({ isLoading, onClose }: Props) => (
  <SidePanelContainerWrapper data-testid="ticket-panel-purchase-placeholder">
    <SidePanelHeaderBase
      rightItems={
        <GiveIconButton
          Icon={XIcon}
          variant="ghost"
          size="small"
          aria-label="Close"
          onClick={onClose}
          data-testid="ticket-panel-purchase-close"
        />
      }
    />
    <SidePanelBodyWrapper>
      {isLoading ? (
        <PanelLoadingSkeleton variant="transaction" />
      ) : (
        <Stack padding="20px">
          <GiveText variant="bodyS" color="secondary">
            This purchase could not be loaded.
          </GiveText>
        </Stack>
      )}
    </SidePanelBodyWrapper>
  </SidePanelContainerWrapper>
);
 
export default PurchasePlaceholder;