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 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 | 1x 1x 1x 1x 1x 1x 1x 16x 16x 1x 1x 16x 16x 2x 2x 2x 2x 16x 16x 16x 2x 2x 16x 16x 16x 16x 16x 16x 16x 16x 16x 16x 16x 16x 16x 16x 16x 16x 16x 16x 16x 16x 16x 16x 16x 16x 16x 16x 16x 16x 16x 16x 16x 16x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 16x 16x 16x 16x 16x 16x | import React from "react";
import OurTable, { ButtonColumn } from "main/components/OurTable";
import { useBackendMutation } from "main/utils/useBackend";
import { onDeleteSuccess } from "main/utils/UCSBDateUtils";
import { useNavigate } from "react-router";
import { hasRole } from "main/utils/useCurrentUser";
export default function RecommendationRequestTable({ requests, currentUser }) {
const navigate = useNavigate();
const editCallback = (cell) => {
navigate(`/recommendationrequests/edit/${cell.row.original.id}`);
};
const deleteMutation = useBackendMutation(
(cell) => ({
url: "/api/recommendationrequests",
method: "DELETE",
params: { id: cell.row.original.id },
}),
{ onSuccess: onDeleteSuccess },
["/api/recommendationrequests/all"],
);
const deleteCallback = async (cell) => {
deleteMutation.mutate(cell);
};
const columns = [
{
header: "ID",
accessorKey: "id",
},
{
header: "Requester Email",
accessorKey: "requesterEmail",
},
{
header: "Professor Email",
accessorKey: "professorEmail",
},
{
header: "Explanation",
accessorKey: "explanation",
},
{
header: "Date Requested",
accessorKey: "dateRequested",
},
{
header: "Date Needed",
accessorKey: "dateNeeded",
},
{
header: "Done",
accessorKey: "done",
cell: (cell) => String(cell.getValue()),
},
];
if (hasRole(currentUser, "ROLE_ADMIN")) {
columns.push(
ButtonColumn(
"Edit",
"primary",
editCallback,
"RecommendationRequestTable",
),
);
columns.push(
ButtonColumn(
"Delete",
"danger",
deleteCallback,
"RecommendationRequestTable",
),
);
}
return (
<OurTable
data={requests}
columns={columns}
testid={"RecommendationRequestTable"}
/>
);
}
|