All files / components/Reports ReportTable.jsx

100% Statements 59/59
100% Branches 7/7
100% Functions 5/5
100% Lines 59/59

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 661x 1x   1x 1x 9x 9x 9x 9x 9x   9x   9x 2x 2x 1x 1x 1x 1x 2x   9x 9x 9x 9x 9x 9x 9x 9x 9x 17x 17x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 17x 17x 9x 9x 9x 9x 9x 17x 17x 9x 9x   9x 5x 5x   5x 9x 9x  
import OurTable, { ButtonColumn } from "main/components/OurTable";
import { useNavigate } from "react-router";
 
// should take in a players list from a commons
export default function ReportTable({
  reports,
  storybook = false,
  buttons = true,
}) {
  const testid = "ReportTable";
 
  const navigate = useNavigate();
 
  const reportCallback = (cell) => {
    const route = `/admin/report/${cell.row.values["id"]}`;
    if (storybook) {
      window.alert(`would navigate to ${route}`);
    } else {
      navigate(route);
    }
  };
 
  const columns = [
    {
      Header: "id",
      accessor: "id",
    },
    {
      Header: "commonsId",
      accessor: "commonsId",
      Cell: (props) => {
        return <div style={{ textAlign: "right" }}>{props.value}</div>;
      },
    },
    {
      Header: "Name",
      accessor: "name",
    },
    {
      Header: "Create Date",
      accessor: "createDate",
    },
    {
      Header: "Num Users",
      accessor: "numUsers",
      Cell: (props) => {
        return <div style={{ textAlign: "right" }}>{props.value}</div>;
      },
    },
    {
      Header: "Num Cows",
      accessor: "numCows",
      Cell: (props) => {
        return <div style={{ textAlign: "right" }}>{props.value}</div>;
      },
    },
  ];
 
  if (buttons) {
    columns.push(
      ButtonColumn("View Report", "secondary", reportCallback, testid),
    );
  }
  return <OurTable data={reports} columns={columns} testid={testid} />;
}