Cleanup on schedule modal + begin smart scheduling BOD-4

This commit is contained in:
Patrick Fic
2020-06-24 08:02:48 -07:00
parent cab080f2de
commit 73ff905b58
11 changed files with 216 additions and 40 deletions

View File

@@ -35,28 +35,25 @@ export function ScheduleJobModalContainer({
const { visible, context, actions } = scheduleModal;
const { jobId, job, previousEvent } = context;
const { refetch } = actions;
const [loading, setLoading] = useState(false);
const [appData, setAppData] = useState({
notifyCustomer: !!(job && job.ownr_ea),
email: (job && job.ownr_ea) || "",
start: null,
smartDates: [],
});
const [cancelAppointment] = useMutation(CANCEL_APPOINTMENT_BY_ID);
const [insertAppointment] = useMutation(INSERT_APPOINTMENT);
const [updateJobStatus] = useMutation(UPDATE_JOBS);
const [formData, setFormData] = useState({
notifyCustomer: false,
email: (job && job.ownr_ea) || "",
});
useEffect(() => {
setFormData({
setAppData({
notifyCustomer: !!(job && job.ownr_ea),
email: (job && job.ownr_ea) || "",
start: null,
smartDates: [],
});
setAppData({
start: null,
});
}, [job, setFormData, setAppData]);
}, [job, , setAppData]);
const { t } = useTranslation();
@@ -68,6 +65,7 @@ export function ScheduleJobModalContainer({
//TODO Customize the amount of minutes it will add.
const handleOk = async () => {
setLoading(true);
if (!!previousEvent) {
const cancelAppt = await cancelAppointment({
variables: { appid: previousEvent },
@@ -89,9 +87,10 @@ export function ScheduleJobModalContainer({
const appt = await insertAppointment({
variables: {
app: {
...appData,
//...appData,
jobid: jobId,
bodyshopid: bodyshop.id,
start: moment(appData.start),
end: moment(appData.start).add(bodyshop.appt_length || 60, "minutes"),
},
},
@@ -129,12 +128,12 @@ export function ScheduleJobModalContainer({
return;
}
}
setLoading(false);
toggleModalVisible();
if (formData.notifyCustomer) {
if (appData.notifyCustomer) {
setEmailOptions({
messageOptions: {
to: formData.email,
to: appData.email,
replyTo: bodyshop.email,
},
template: {
@@ -156,14 +155,14 @@ export function ScheduleJobModalContainer({
width={"90%"}
maskClosable={false}
destroyOnClose
okButtonProps={{ disabled: appData.start ? false : true }}
>
okButtonProps={{
disabled: appData.start ? false : true,
loading: loading,
}}>
<ScheduleJobModalComponent
existingAppointments={existingAppointments}
appData={appData}
setAppData={setAppData}
formData={formData}
setFormData={setFormData}
/>
</Modal>
);