Implemented rescheduling functionality on event BOD-167

This commit is contained in:
Patrick Fic
2020-06-16 11:28:41 -07:00
parent 951fce539b
commit 9cce792d72
6 changed files with 99 additions and 29 deletions

View File

@@ -3,6 +3,7 @@ import ScheduleJobModalComponent from "./schedule-job-modal.component";
import { useMutation, useQuery } from "@apollo/react-hooks";
import {
INSERT_APPOINTMENT,
CANCEL_APPOINTMENT_BY_ID,
QUERY_APPOINTMENTS_BY_JOBID,
} from "../../graphql/appointments.queries";
import moment from "moment";
@@ -32,13 +33,13 @@ export function ScheduleJobModalContainer({
setEmailOptions,
}) {
const { visible, context, actions } = scheduleModal;
const { jobId, job } = context;
const { jobId, job, previousEvent } = context;
const { refetch } = actions;
const [appData, setAppData] = useState({
start: null,
});
const [cancelAppointment] = useMutation(CANCEL_APPOINTMENT_BY_ID);
const [insertAppointment] = useMutation(INSERT_APPOINTMENT);
const [updateJobStatus] = useMutation(UPDATE_JOBS);
const [formData, setFormData] = useState({
@@ -52,7 +53,10 @@ export function ScheduleJobModalContainer({
email: (job && job.ownr_ea) || "",
start: null,
});
}, [job, setFormData]);
setAppData({
start: null,
});
}, [job, setFormData, setAppData]);
const { t } = useTranslation();
@@ -64,6 +68,24 @@ export function ScheduleJobModalContainer({
//TODO Customize the amount of minutes it will add.
const handleOk = async () => {
if (!!previousEvent) {
const cancelAppt = await cancelAppointment({
variables: { appid: previousEvent },
});
notification["success"]({
message: t("appointments.successes.canceled"),
});
if (!!cancelAppt.errors) {
notification["error"]({
message: t("appointments.errors.canceling", {
message: JSON.stringify(cancelAppt.errors),
}),
});
return;
}
}
const appt = await insertAppointment({
variables: {
app: {