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 | 1x 1x 1x 1x 1x 1x 1x 16x 16x 16x 16x 16x 16x 2x 2x 16x 16x 16x 16x 16x 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 10x 10x 10x 10x 16x 16x | import React from "react";
import OurTable, { ButtonColumn } from "main/components/OurTable";
import { useBackendMutation } from "main/utils/useBackend";
import {
cellToAxiosParamsDelete,
onDeleteSuccess,
} from "main/utils/menuItemReviewUtils";
import { useNavigate } from "react-router";
import { hasRole } from "main/utils/useCurrentUser";
export default function MenuItemReviewTable({
reviews,
currentUser,
testIdPrefix = "MenuItemReviewTable",
}) {
const navigate = useNavigate();
const editCallback = (cell) => {
navigate(`/MenuItemReview/edit/${cell.row.original.id}`);
};
// Stryker disable all : hard to test for query caching
const deleteMutation = useBackendMutation(
cellToAxiosParamsDelete,
{ onSuccess: onDeleteSuccess },
["/api/menuitemreviews/all"],
);
// Stryker restore all
// Stryker disable next-line all : TODO try to make a good test for this
const deleteCallback = async (cell) => {
deleteMutation.mutate(cell);
};
const columns = [
{
header: "id",
accessorKey: "id",
},
{
header: "itemId",
accessorKey: "itemId",
},
{
header: "reviewerEmail",
accessorKey: "reviewerEmail",
},
{
header: "stars",
accessorKey: "stars",
},
{
header: "dateReviewed",
accessorKey: "dateReviewed",
},
{
header: "comments",
accessorKey: "comments",
},
];
if (hasRole(currentUser, "ROLE_ADMIN")) {
columns.push(ButtonColumn("Edit", "primary", editCallback, testIdPrefix));
columns.push(
ButtonColumn("Delete", "danger", deleteCallback, testIdPrefix),
);
}
return <OurTable data={reviews} columns={columns} testid={testIdPrefix} />;
}
|