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 | 69x 69x 69x 1x 69x 69x 1x 69x 69x | 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"}
/>
);
}
|