Cleanup on schedule modal + begin smart scheduling BOD-4
This commit is contained in:
@@ -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>
|
||||
);
|
||||
|
||||
Reference in New Issue
Block a user