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 1x 1x 6x 2x 2x 6x 1x 12x 12x 12x 12x 12x 12x 12x 12x 12x 12x 12x 12x 12x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 12x 2x 2x 12x 12x 12x 12x 12x 12x 2x 2x 12x 2x 2x 12x 12x 12x 12x 12x 12x 12x | import React from "react";
import BasicLayout from "main/layouts/BasicLayout/BasicLayout";
import AnnouncementForm from "main/components/Announcement/AnnouncementForm";
import { Navigate, useParams } from "react-router";
import { toast } from "react-toastify";
import { useBackend, useBackendMutation } from "main/utils/useBackend";
import { toBackendDateTime } from "main/utils/announcementUtils";
const nonBlankParam = (params, key, value) => {
if (value) {
params[key] = value;
}
};
export default function AdminCreateAnnouncementsPage() {
const { commonsId } = useParams();
// Stryker disable all
const { data: commonsPlus } = useBackend(
[`/api/commons/plus?id=${commonsId}`],
{
method: "GET",
url: "/api/commons/plus",
params: {
id: commonsId,
},
},
);
// Stryker restore all
const objectToAxiosParams = (announcement) => {
const params = {
commonsId,
announcementText: announcement.announcementText,
};
nonBlankParam(
params,
"startDate",
toBackendDateTime(announcement.startDate),
);
nonBlankParam(params, "endDate", toBackendDateTime(announcement.endDate));
return {
url: "/api/announcements/post",
method: "POST",
params,
};
};
const onSuccess = (announcement) => {
toast(`Announcement created - id: ${announcement.id}`);
};
// Stryker disable all
const mutation = useBackendMutation(objectToAxiosParams, { onSuccess }, [
`/api/announcements/getbycommonsid?commonsId=${commonsId}`,
]);
// Stryker restore all
const submitAction = async (data) => {
mutation.mutate(data);
};
if (mutation.isSuccess) {
return <Navigate to={`/admin/announcements/${commonsId}`} />;
}
const commonsName = commonsPlus?.commons.name;
return (
<BasicLayout>
<div className="pt-2">
<h1>Create Announcement for Commons {commonsName}</h1>
<AnnouncementForm submitAction={submitAction} />
</div>
</BasicLayout>
);
}
|