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 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 | 27x 27x 1x 27x 27x 2x 27x 1x 27x 1x 27x 1x 27x 1x 27x 52x 52x 27x 5x 5x 27x 3x 3x 27x | import React from "react"; import OurTable, { ButtonColumn } from "../OurTable"; import { useNavigate } from "react-router-dom"; import { useBackendMutation } from "main/utils/useBackend"; import { cellToAxiosParamsDelete, onDeleteSuccess, cellToAxiosParamsModerate, onModerateSuccess, } from "main/utils/Reviews"; export default function ReviewsTable({ reviews, userOptions, moderatorOptions, }) { const navigate = useNavigate(); const editCallback = (cell) => { navigate(`/reviews/edit/${cell.row.original.id}`); }; // Stryker disable all const deleteMutation = useBackendMutation( cellToAxiosParamsDelete, { onSuccess: onDeleteSuccess }, ["/api/reviews/userReviews"], ); // Stryker restore all // Stryker disable next-line all const deleteCallback = async (cell) => { deleteMutation.mutate(cell); }; // Stryker disable all const approveMutation = useBackendMutation( (cell) => cellToAxiosParamsModerate(cell, "APPROVED"), { onSuccess: onModerateSuccess }, ["/api/reviews/all"], ); const rejectMutation = useBackendMutation( (cell) => cellToAxiosParamsModerate(cell, "REJECTED"), { onSuccess: onModerateSuccess }, ["/api/reviews/all"], ); const approveCallback = async (cell) => { approveMutation.mutate(cell); }; const rejectCallback = async (cell) => { rejectMutation.mutate(cell); }; // Stryker restore all const columns = [ { Header: "Item Id", accessor: "item.id", }, { Header: "Item Name", accessor: "item.name", }, { Header: "Score", accessor: "itemsStars", Cell: ({ value }) => "⭐".repeat(value), }, { Header: "Comments", accessor: "reviewerComments", }, { Header: "Date Served", accessor: "dateItemServed", Cell: ({ value }) => ( <span>{new Date(value).toLocaleDateString("en-US")}</span> ), }, { Header: "Dining Commons Code", accessor: "item.diningCommonsCode", }, ]; if (userOptions) { columns.push(ButtonColumn("Edit", "primary", editCallback, "Reviewstable")); columns.push( ButtonColumn("Delete", "danger", deleteCallback, "Reviewstable"), ); } if (moderatorOptions) { columns.push( ButtonColumn("Approve", "primary", approveCallback, "Reviewstable"), ); columns.push( ButtonColumn("Reject", "danger", rejectCallback, "Reviewstable"), ); } return <OurTable data={reviews} columns={columns} testid={"Reviewstable"} />; } |