All files / pages/Admin InstructorsIndexPage.jsx

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

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 491x 1x 1x 1x 1x 1x   1x 6x 6x 6x 6x 6x 6x 6x 6x 6x 6x     6x 6x 6x 6x 6x 6x 6x 6x       6x   6x 6x 6x 6x 6x 6x 6x 6x 6x 6x         6x  
import React from "react";
import { useBackend } from "main/utils/useBackend";
import BasicLayout from "main/layouts/BasicLayout/BasicLayout";
import RoleEmailTable from "main/components/Users/RoleEmailTable";
import { Button } from "react-bootstrap";
import { Link } from "react-router";
 
export default function InstructorsIndexPage() {
  const {
    data: instructors,
    error: _error,
    status: _status,
  } = useBackend(
    // Stryker disable next-line all : don't test internal caching of React Query
    ["/api/admin/instructors/get"],
    { method: "GET", url: "/api/admin/instructors/get" },
    // Stryker disable next-line all : don't test default value of empty list
    [],
  );
 
  const createButton = () => {
    return (
      <Button
        variant="primary"
        as={Link}
        to="/admin/instructors/create"
        style={{ float: "right" }}
      >
        New Instructor
      </Button>
    );
  };
 
  return (
    <BasicLayout>
      <div className="pt-2">
        {createButton()}
        <h1>Instructors</h1>
        <RoleEmailTable
          data={instructors}
          deleteEndpoint="/api/admin/instructors/delete"
          getEndpoint="/api/admin/instructors/get"
          testIdPrefix="InstructorsIndexPage"
        />
      </div>
    </BasicLayout>
  );
}