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 | 1x 1x 1x 1x 1x 13x 13x 13x 13x 13x 13x 1x 1x 13x 1x 1x 1x 13x 13x 13x 13x 13x 13x 13x 13x 13x 13x 13x 13x 13x 13x 13x 13x 13x 13x 13x 13x 13x 13x 13x 13x 13x 13x 13x 13x 13x 13x 13x 6x 6x 6x 6x 13x 13x 13x | import React from "react";
import OurTable, { ButtonColumn } from "main/components/OurTable";
import { useNavigate } from "react-router";
import { hasRole } from "main/utils/useCurrentUser";
export default function HelpRequestTable({
helpRequests,
currentUser,
testIdPrefix = "HelpRequestTable",
}) {
const navigate = useNavigate();
const editCallback = (cell) => {
navigate(`/helprequest/edit/${cell.row.original.id}`);
};
const deleteCallback = async (cell) => {
// Delete functionality will be implemented later
console.log("Delete callback for id: ", cell.row.original.id);
};
const columns = [
{
header: "id",
accessorKey: "id", // accessor is the "key" in the data
},
{
header: "Requester Email",
accessorKey: "requesterEmail",
},
{
header: "Team Id",
accessorKey: "teamId",
},
{
header: "Table/Breakout Room",
accessorKey: "tableOrBreakoutRoom",
},
{
header: "Request Time",
accessorKey: "requestTime",
},
{
header: "Explanation",
accessorKey: "explanation",
},
{
header: "Solved",
accessorKey: "solved",
},
];
if (hasRole(currentUser, "ROLE_ADMIN")) {
columns.push(ButtonColumn("Edit", "primary", editCallback, testIdPrefix));
columns.push(
ButtonColumn("Delete", "danger", deleteCallback, testIdPrefix),
);
}
return (
<OurTable data={helpRequests} columns={columns} testid={testIdPrefix} />
);
}
|