- PR Change Requests (Progress)

Signed-off-by: Dave Richer <dave@imexsystems.ca>
This commit is contained in:
Dave Richer
2024-04-10 16:48:06 -04:00
parent 693d02de87
commit 3d753a2d19
15 changed files with 186 additions and 94 deletions

View File

@@ -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 {