All files / components/Courses CourseWarningBanner.jsx

100% Statements 4/4
100% Branches 9/9
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        72x                           72x   72x   72x                                                        
import { Alert } from "react-bootstrap";
import { useBackend } from "main/utils/useBackend";
 
export function CourseWarningBanner({ courseId, orgName }) {
  const { data: warnings } = useBackend(
    [`/api/courses/warnings/${courseId}`],
    {
      method: "GET",
      url: `/api/courses/warnings/${courseId}`,
    },
    undefined,
    true,
    {
      placeholderData: { showOrganizationAgeWarning: false },
      staleTime: "static",
    },
  );
 
  const permission = warnings?.defaultBasePermission;
  const showPermissionWarning =
    permission && permission !== "none" && permission !== "null";
 
  return (
    <>
      {warnings?.showOrganizationAgeWarning && (
        <Alert variant="warning">
          Warning: This GitHub Organization is less than 30 days old. You will
          experience difficulties enrolling more than 50 students in a day.
        </Alert>
      )}
      {showPermissionWarning && (
        <Alert variant="warning">
          Warning: the organization setting for Default Base Permission is not
          the recommended value of None. This means that students in the
          organization may be able to access other students&apos; private
          repos.&nbsp;
          {orgName && (
            <Alert.Link
              href={`https://github.com/organizations/${orgName}/settings/member_privileges`}
              target="_blank"
              rel="noopener noreferrer"
            >
              You can change that setting here
            </Alert.Link>
          )}
        </Alert>
      )}
    </>
  );
}