All files / pages/UCSBOrganizations UCSBOrganizationsIndexPage.jsx

100% Statements 35/35
100% Branches 3/3
100% Functions 2/2
100% Lines 35/35

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 481x 1x   1x 1x 1x 1x   1x 8x   8x 8x 8x 8x 8x 8x 8x 8x 8x 8x     8x 8x 3x 3x 3x 3x 3x 3x       3x 8x   8x 8x 8x 8x 8x 8x       8x  
import React from "react";
import { useBackend } from "main/utils/useBackend";
 
import BasicLayout from "main/layouts/BasicLayout/BasicLayout";
import UCSBOrganizationsTable from "main/components/UCSBOrganizations/UCSBOrganizationsTable";
import { useCurrentUser, hasRole } from "main/utils/useCurrentUser";
import { Button } from "react-bootstrap";
 
export default function UCSBOrganizationsIndexPage() {
  const currentUser = useCurrentUser();
 
  const {
    data: organizations,
    error: _error,
    status: _status,
  } = useBackend(
    // Stryker disable next-line all : don't test internal caching of React Query
    ["/api/ucsborganizations/all"],
    { method: "GET", url: "/api/ucsborganizations/all" },
    // Stryker disable next-line all : don't test default value of empty list
    [],
  );
 
  const createButton = () => {
    if (hasRole(currentUser, "ROLE_ADMIN")) {
      return (
        <Button
          variant="primary"
          href="/ucsborganizations/create"
          style={{ float: "right" }}
        >
          Create UCSB Organization
        </Button>
      );
    }
  };
 
  return (
    <BasicLayout>
      <div className="pt-2">
        {createButton()}
        <h1>UCSB Organizations</h1>
        <UCSBOrganizationsTable organizations={organizations} currentUser={currentUser} />
      </div>
    </BasicLayout>
  );
}