All files / client/src/views/program-item ProgramItemErrors.tsx

75% Statements 3/4
0% Branches 0/6
100% Functions 1/1
75% Lines 3/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 56 57 58 59 60 61 62                            356x           6x                                                                         1x        
import { ReactElement } from "react";
import styled from "styled-components";
import { useTranslation } from "react-i18next";
import { getAttendeeType } from "client/utils/getAttendeeType";
import { ProgramType } from "shared/types/models/programItem";
import { ErrorMessage } from "client/components/ErrorMessage";
 
interface Props {
  isValidMinAttendanceValue: boolean;
  isValidMaxAttendanceValue: boolean;
  minAttendanceBiggerThanMax: boolean;
  programType: ProgramType;
}
 
export const ProgramItemErrors = ({
  isValidMinAttendanceValue,
  isValidMaxAttendanceValue,
  minAttendanceBiggerThanMax,
  programType,
}: Props): ReactElement => {
  const { t } = useTranslation();
 
  return (
    <ErrorsList>
      {!isValidMinAttendanceValue && (
        <ErrorMessage
          message={t("signup.minAttendanceMissing", {
            ATTENDEE_TYPE: t(
              `attendeeTypePlural.${getAttendeeType(programType)}`,
            ),
          })}
        />
      )}
 
      {!isValidMaxAttendanceValue && (
        <ErrorMessage
          message={t("signup.maxAttendanceMissing", {
            ATTENDEE_TYPE: t(
              `attendeeTypePlural.${getAttendeeType(programType)}`,
            ),
          })}
        />
      )}
 
      {minAttendanceBiggerThanMax && (
        <ErrorMessage
          message={t("signup.minAttendanceBiggerThanMax", {
            ATTENDEE_TYPE: t(
              `attendeeTypePlural.${getAttendeeType(programType)}`,
            ),
          })}
        />
      )}
    </ErrorsList>
  );
};
 
const ErrorsList = styled.div`
  display: flex;
  flex-direction: column;
`;