All files / src/features/GiveSignup/components GiveBusinessClassification.tsx

100% Statements 7/7
100% Branches 2/2
100% Functions 4/4
100% Lines 6/6

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                                      15x   15x                           51x 51x         2x                                           9x          
import { Box, Stack, styled } from "@mui/material";
import { FormProvider } from "react-hook-form";
import { StepCard } from "./StepCard";
import SignupNavigation from "./SignupNavigation";
import { useBusinessClassificationForm } from "../hooks/useBusinessClassificationForm";
import { FormProps, TMerchantClassification } from "../types";
import { CustomSkeleton } from "./CustomSkeleton";
import { CLASSIFICATION_ICON } from "../constants";
import ScrollableContent from "./ScrollableContent";
 
function GiveBusinessClassifications(props: FormProps) {
  const {
    methods,
    values,
    data,
    handleSelect,
    handleGoBack,
    onSubmit,
    isLoading,
  } = useBusinessClassificationForm(props);
 
  return (
    <FormProvider {...methods}>
      <Stack
        width="100%"
        component="form"
        onSubmit={methods.handleSubmit(onSubmit)}
      >
        <ScrollableContent>
          {isLoading ? (
            <CustomSkeleton />
          ) : (
            <CardContainer>
              {data?.data?.map((data: any) => {
                const Icon =
                  CLASSIFICATION_ICON[data?.name as TMerchantClassification];
                return (
                  <StepCard
                    Icon={Icon}
                    key={data?.id}
                    onClick={() =>
                      handleSelect({
                        name: data?.name,
                      })
                    }
                    title={data?.displayName}
                    description={data?.description}
                    isOther={data?.name === "other"}
                    isSelected={values.name === data?.name}
                  />
                );
              })}
            </CardContainer>
          )}
        </ScrollableContent>
        <SignupNavigation disabled={!values.name} handleGoBack={handleGoBack} />
      </Stack>
    </FormProvider>
  );
}
 
export default GiveBusinessClassifications;
 
const CardContainer = styled(Box)(({ theme }) => ({
  gap: "12px",
  flexDirection: "column",
  display: "flex",
}));