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 17x 17x 17x 17x 17x 17x 2x 2x 2x 17x 17x 17x 17x 17x 17x 17x 17x 1x 1x 17x 17x 17x 17x 17x 17x 17x 17x 17x 17x 17x 17x 17x 17x 17x 17x 17x 17x 17x 15x 15x 15x 15x 15x 17x 17x 17x 17x 17x 17x | import React from "react";
import OurTable, { ButtonColumn } from "main/components/OurTable";
import { useBackendMutation } from "main/utils/useBackend";
import {
cellToAxiosParamsDelete,
onDeleteSuccess,
} from "main/utils/announcementUtils";
import { useNavigate } from "react-router";
import { hasRole } from "main/utils/currentUser";
export default function AnnouncementTable({
announcements,
currentUser,
commonsId,
}) {
const navigate = useNavigate();
const editCallback = (cell) => {
const rowCommonsId = commonsId || cell.row.values.commonsId;
navigate(`/admin/announcements/${rowCommonsId}/edit/${cell.row.values.id}`);
};
// Stryker disable all : hard to test for query caching
const deleteMutation = useBackendMutation(
cellToAxiosParamsDelete,
{ onSuccess: onDeleteSuccess },
[`/api/announcements/getbycommonsid?commonsId=${commonsId}`],
);
// 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",
accessor: "id", // accessor is the "key" in the data
},
{
Header: "Start Date ISO Format",
accessor: "startDate",
},
{
Header: "End Date ISO Format",
accessor: "endDate",
},
{
Header: "Announcement",
accessor: "announcementText",
},
];
if (hasRole(currentUser, "ROLE_ADMIN")) {
columns.push(
ButtonColumn("Edit", "primary", editCallback, "AnnouncementTable"),
);
columns.push(
ButtonColumn("Delete", "danger", deleteCallback, "AnnouncementTable"),
);
}
return (
<OurTable
data={announcements}
columns={columns}
testid={"AnnouncementTable"}
/>
);
}
|