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 | 1x 1x 1x 1x 68x 68x 68x 68x 68x 68x 68x 68x 68x 68x 68x 68x 68x 68x 68x 68x 68x 68x 68x 68x 68x 68x 68x 68x 1x 1x 1x 1x 1x 1x 68x 1x 1x 68x 68x 68x 68x 68x 68x 68x 1x 1x 68x 68x 68x 68x 68x 68x 68x 68x | import { useBackendMutation } from "main/utils/useBackend";
import { toast } from "react-toastify";
import OurTable, { ButtonColumn } from "main/components/OurTable";
export default function DroppedStudentsTable({ students, courseId }) {
const columns = [
{
header: "id",
accessorKey: "id",
id: "id",
},
{
header: "Student Id",
accessorKey: "studentId",
},
{
header: "First Name",
accessorKey: "firstName",
},
{
header: "Last Name",
accessorKey: "lastName",
},
{
header: "Email",
accessorKey: "email",
},
];
const cellToAxiosParamsRestore = (cell) => ({
url: `/api/rosterstudents/restore`,
method: "PUT",
params: {
id: cell.row.original.id,
},
});
const restoreSuccess = () => {
toast("Student successfully restored to course.");
};
const restoreMutation = useBackendMutation(
cellToAxiosParamsRestore,
{
onSuccess: restoreSuccess,
},
[`/api/rosterstudents/course/${courseId}`],
);
const restoreCallback = (cell) => {
restoreMutation.mutate(cell);
};
columns.push(
ButtonColumn("Restore", "primary", restoreCallback, "RestoreButton"),
);
return (
<OurTable
columns={columns}
data={students}
testid={"DroppedStudentsTable"}
/>
);
}
|