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 | 1x 1x 1x 1x 1x 1x 26x 26x 26x 26x 26x 26x 26x 4x 4x 4x 4x 4x 4x 4x 4x 26x 4x 4x 26x 26x 26x 26x 26x 4x 4x 26x 26x 26x 26x 26x 26x 26x 26x 26x 26x 59x 58x 58x 58x 58x 58x 58x 58x 1x 1x 1x 1x 1x 1x 26x 26x 26x 26x 26x 26x 26x 26x | import React from "react"; import OurTable from "main/components/OurTable"; import { useBackendMutation } from "main/utils/useBackend"; import { toast } from "react-toastify"; import { Button } from "react-bootstrap"; export default function RoleEmailTable({ data, deleteEndpoint = "/api/admin/delete", getEndpoint = "/api/admin/all", testIdPrefix = "RoleEmailTable", customDeleteCallback = null, // optional deleteCallback, used in AdminsIndexPage }) { const cellToAxiosParamsDelete = (cell, deleteEndpoint) => { return { url: deleteEndpoint, method: "DELETE", params: { email: cell.row.original.email, }, }; }; const onDeleteSuccess = (message) => { toast(message); }; const deleteMutation = useBackendMutation( (cell) => cellToAxiosParamsDelete(cell, deleteEndpoint), { onSuccess: onDeleteSuccess }, [getEndpoint], ); const defaultDeleteCallback = async (cell) => { deleteMutation.mutate(cell); }; const deleteCallback = customDeleteCallback || defaultDeleteCallback; const columns = [ { header: "Email", accessorKey: "email", // accessor is the "key" in the data }, { header: "Delete", accessorKey: "isInAdminEmails", cell: ({ cell }) => { if (!cell.row.original.isInAdminEmails) { return ( <Button className="btn btn-danger" onClick={() => deleteCallback(cell)} data-testid={`${testIdPrefix}-cell-row-${cell.row.index}-col-delete-button`} > Delete </Button> ); } return ( <span data-testid={`${testIdPrefix}-cell-row-${cell.row.index}-cannot-delete`} > In <code>ADMIN_EMAILS</code> </span> ); }, }, ]; return ( <OurTable data={Array.isArray(data) ? data : []} columns={columns} testid={testIdPrefix} /> ); } |