All files / components/HelpRequests HelpRequestTable.jsx

100% Statements 44/44
100% Branches 5/5
100% Functions 4/4
100% Lines 44/44

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 551x 1x   1x 1x 1x 1x   1x 14x 14x 14x 14x 14x 14x 1x 1x   14x 14x 14x 14x 14x   14x   14x 14x 2x 2x   14x 14x 14x 14x 14x 14x 14x 14x 14x   14x 8x 8x 8x   14x 14x 14x 14x 14x     14x  
import React from "react";
import OurTable, { ButtonColumn } from "main/components/OurTable";
 
import { useBackendMutation } from "main/utils/useBackend";
import { cellToAxiosParamsDelete, onDeleteSuccess } from "main/utils/helpRequestUtils";
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}`);
    };
 
    // Stryker disable all
    const deleteMutation = useBackendMutation(
        cellToAxiosParamsDelete,
        { onSuccess: onDeleteSuccess },
        ["/api/helprequest/all"],
    );
    // Stryker restore all
 
    // Stryker disable next-line all
    const deleteCallback = async (cell) => {
        deleteMutation.mutate(cell);
    };
 
    const columns = [
        { header: "Id", accessorKey: "id" },
        { header: "RequesterEmail", accessorKey: "requesterEmail" },
        { header: "TeamId", accessorKey: "teamId" },
        { header: "TableOrBreakoutRoom", accessorKey: "tableOrBreakoutRoom" },
        { header: "RequestTime", accessorKey: "requestTime" },
        { header: "Explanation", accessorKey: "explanation" },
        { header: "Solved", accessorKey: "solved", cell: ({ getValue }) => String(getValue()) },
    ];
 
    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="HelpRequestTable"
        />
    );
}