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 | 1x 1x 1x 1x 1x 1x 1x 1x 10x 10x 10x 10x 10x 10x 10x 1x 3x 3x 3x 1x 16x 16x 16x 16x 16x 16x 1x 1x 16x 16x 16x 16x 16x 16x 16x 2x 2x 16x 16x 16x 16x 16x 16x 16x 16x 16x 8x 8x 8x 8x 16x 16x 16x | /* eslint-disable react-refresh/only-export-components */
import React from "react";
import OurTable, { ButtonColumn } from "main/components/OurTable";
import { useBackendMutation } from "main/utils/useBackend";
import { useNavigate } from "react-router";
import { hasRole } from "main/utils/useCurrentUser";
import { toast } from "react-toastify";
export const buildDeleteParams = (cell) => {
const id = cell?.row?.values?.id ?? cell?.row?.original?.id;
return {
url: "/api/menuitemreview",
method: "DELETE",
params: { id },
};
};
export const onDeleteSuccess = (_message) => {
void _message;
toast.success("MenuItemReview deleted successfully");
};
export default function MenuItemReviewTable({
menuItemReviews,
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(
buildDeleteParams,
{ onSuccess: onDeleteSuccess },
["/api/menuitemreview/all"],
);
// Stryker restore all
const deleteCallback = async (cell) => {
await deleteMutation.mutateAsync(cell);
};
const columns = [
{ header: "id", accessorKey: "id" },
{ header: "Item ID", accessorKey: "itemId" },
{ header: "Reviewer Email", accessorKey: "reviewerEmail" },
{ header: "Stars", accessorKey: "stars" },
{ header: "Date Reviewed", 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={menuItemReviews} columns={columns} testid={testIdPrefix} />
);
}
|