- PR Change Requests (Progress)
Signed-off-by: Dave Richer <dave@imexsystems.ca>
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
import { Col, DatePicker, Form, Input, Row, Select, Switch } from "antd";
|
||||
import { Col, Form, Input, Row, Select, Switch } from "antd";
|
||||
import React from "react";
|
||||
import { useTranslation } from "react-i18next";
|
||||
import { FormDatePicker } from "../form-date-picker/form-date-picker.component.jsx";
|
||||
@@ -9,6 +9,7 @@ import dayjs from "../../utils/day";
|
||||
import { connect } from "react-redux";
|
||||
import LoadingSkeleton from "../loading-skeleton/loading-skeleton.component.jsx";
|
||||
import JobSearchSelectComponent from "../job-search-select/job-search-select.component.jsx";
|
||||
import { FormDateTimePickerEnhanced } from "../form-date-time-picker-enhanced/form-date-time-picker-enhanced.component.jsx";
|
||||
|
||||
const mapStateToProps = createStructuredSelector({
|
||||
bodyshop: selectBodyshop,
|
||||
@@ -194,12 +195,12 @@ export function TaskUpsertModalComponent({
|
||||
</Col>
|
||||
<Col span={8}>
|
||||
<Form.Item label={t("tasks.fields.due_date")} name="due_date">
|
||||
<FormDatePicker format="MM/DD/YYYY" presets={datePickerPresets} />
|
||||
<FormDatePicker onlyFuture format="MM/DD/YYYY" presets={datePickerPresets} />
|
||||
</Form.Item>
|
||||
</Col>
|
||||
<Col span={8}>
|
||||
<Form.Item label={t("tasks.fields.remind_at")} name="remind_at">
|
||||
<DatePicker showTime minuteStep={15} format="MM/DD/YYYY h:mm a" presets={datePickerPresets} />
|
||||
<FormDateTimePickerEnhanced onlyFuture showTime minuteStep={15} presets={datePickerPresets} />
|
||||
</Form.Item>
|
||||
</Col>
|
||||
</Row>
|
||||
|
||||
@@ -34,7 +34,7 @@ export function TaskUpsertModalContainer({ bodyshop, currentUser, taskUpsert, to
|
||||
const [insertTask] = useMutation(MUTATION_INSERT_NEW_TASK);
|
||||
const [updateTask] = useMutation(MUTATION_UPDATE_TASK);
|
||||
const { open, context, actions } = taskUpsert;
|
||||
const { jobid, joblineid, billid, partsorderid, taskId, existingTask } = context;
|
||||
const { jobid, joblineid, billid, partsorderid, taskId, existingTask, query } = context;
|
||||
const { refetch } = actions;
|
||||
const [form] = Form.useForm();
|
||||
const [selectedJobId, setSelectedJobId] = useState(null);
|
||||
@@ -54,7 +54,6 @@ export function TaskUpsertModalContainer({ bodyshop, currentUser, taskUpsert, to
|
||||
variables: { id: taskId },
|
||||
skip: !taskId
|
||||
});
|
||||
|
||||
// Use Effect to hydrate existing task if only a taskid is provided
|
||||
useEffect(() => {
|
||||
if (!taskLoading && !taskError && taskData && taskData?.tasks_by_pk) {
|
||||
@@ -113,12 +112,19 @@ export function TaskUpsertModalContainer({ bodyshop, currentUser, taskUpsert, to
|
||||
const handleExistingTask = async (values) => {
|
||||
const isAssignedToDirty = values.assigned_to !== existingTask.assigned_to;
|
||||
|
||||
const taskData = await updateTask({
|
||||
const taskObject = {
|
||||
variables: {
|
||||
taskId: existingTask.id,
|
||||
task: replaceUndefinedWithNull(values)
|
||||
}
|
||||
});
|
||||
},
|
||||
refetchQueries: ["GET_JOB_BY_PK"]
|
||||
};
|
||||
|
||||
if (query && Object.keys(query).length) {
|
||||
taskObject.refetchQueries.push(Object.keys(query)[0]);
|
||||
}
|
||||
|
||||
const taskData = await updateTask(taskObject);
|
||||
|
||||
if (!taskData.errors) {
|
||||
const oldTask = taskData?.data?.update_tasks?.returning[0];
|
||||
@@ -164,7 +170,7 @@ export function TaskUpsertModalContainer({ bodyshop, currentUser, taskUpsert, to
|
||||
};
|
||||
|
||||
const handleNewTask = async (values) => {
|
||||
const newTaskData = await insertTask({
|
||||
const newTaskObject = {
|
||||
variables: {
|
||||
taskInput: [
|
||||
{
|
||||
@@ -174,16 +180,27 @@ export function TaskUpsertModalContainer({ bodyshop, currentUser, taskUpsert, to
|
||||
}
|
||||
]
|
||||
},
|
||||
update(cache, { data }) {
|
||||
cache.modify({
|
||||
fields: {
|
||||
tasks(cached) {
|
||||
return [...data?.insert_tasks?.returning, ...cached];
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
refetchQueries: ["GET_JOB_BY_PK"]
|
||||
// update(cache, { data }) {
|
||||
// cache.modify({
|
||||
// fields: {
|
||||
// tasks(cached) {
|
||||
// const newTasks = data?.insert_tasks?.returning.map(task => cache.writeFragment({
|
||||
// data: task,
|
||||
// fragment: PARTIAL_TASK_FIELDS_WRAPPER
|
||||
// }));
|
||||
// return [...cached, ...newTasks];
|
||||
// }
|
||||
// }
|
||||
// });
|
||||
// }
|
||||
};
|
||||
|
||||
if (query && Object.keys(query).length) {
|
||||
newTaskObject.refetchQueries.push(Object.keys(query)[0]);
|
||||
}
|
||||
|
||||
const newTaskData = await insertTask(newTaskObject);
|
||||
|
||||
const newTask = newTaskData?.data?.insert_tasks?.returning[0];
|
||||
const newTaskID = newTask?.id;
|
||||
@@ -237,6 +254,7 @@ export function TaskUpsertModalContainer({ bodyshop, currentUser, taskUpsert, to
|
||||
*/
|
||||
const handleFinish = async (formValues) => {
|
||||
const { ...values } = formValues;
|
||||
|
||||
if (existingTask) {
|
||||
await handleExistingTask(values);
|
||||
} else {
|
||||
|
||||
Reference in New Issue
Block a user