diff --git a/client/src/components/task-list/task-list.container.jsx b/client/src/components/task-list/task-list.container.jsx index bb079b2be..904b0e15f 100644 --- a/client/src/components/task-list/task-list.container.jsx +++ b/client/src/components/task-list/task-list.container.jsx @@ -33,7 +33,8 @@ export function TaskListContainer({ currentUser, onlyMine, parentJobId, - showRo = true + showRo = true, + disableJobRefetch = false }) { const { t } = useTranslation(); const searchParams = queryString.parse(useLocation().search); @@ -73,14 +74,20 @@ export function TaskListContainer({ const completed_at = !currentStatus ? dayjs().toISOString() : null; try { - const toggledTask = await toggleTaskCompleted({ + const toggledTaskObject = { variables: { id: id, completed: !currentStatus, completed_at: completed_at }, - refetchQueries: [Object.keys(query)[0], "GET_JOB_BY_PK"] - }); + refetchQueries: [Object.keys(query)[0]] + }; + + if (!disableJobRefetch) { + toggledTaskObject.refetchQueries.push("GET_JOB_BY_PK"); + } + + const toggledTask = await toggleTaskCompleted(toggledTaskObject); if (!toggledTask.errors) { dispatch( @@ -119,14 +126,21 @@ export function TaskListContainer({ const toggleDeletedStatus = async (id, currentStatus) => { const deleted_at = !currentStatus ? dayjs().toISOString() : null; try { - const toggledTask = await toggleTaskDeleted({ + const toggledTaskObject = { variables: { id: id, deleted: !currentStatus, deleted_at: deleted_at }, - refetchQueries: [Object.keys(query)[0], "GET_JOB_BY_PK"] - }); + refetchQueries: [Object.keys(query)[0]] + }; + + if (!disableJobRefetch) { + toggledTaskObject.refetchQueries.push("GET_JOB_BY_PK"); + } + + const toggledTask = await toggleTaskDeleted(toggledTaskObject); + if (!toggledTask.errors) { dispatch( insertAuditTrail({ diff --git a/client/src/components/task-upsert-modal/task-upsert-modal.component.jsx b/client/src/components/task-upsert-modal/task-upsert-modal.component.jsx index 8c7387cc2..a1b7906a6 100644 --- a/client/src/components/task-upsert-modal/task-upsert-modal.component.jsx +++ b/client/src/components/task-upsert-modal/task-upsert-modal.component.jsx @@ -16,7 +16,7 @@ const mapStateToProps = createStructuredSelector({ currentUser: selectCurrentUser }); -const mapDispatchToProps = (dispatch) => ({}); +const mapDispatchToProps = () => ({}); export default connect(mapStateToProps, mapDispatchToProps)(TaskUpsertModalComponent); diff --git a/client/src/components/task-upsert-modal/task-upsert-modal.container.jsx b/client/src/components/task-upsert-modal/task-upsert-modal.container.jsx index 3af9651dd..c8883404e 100644 --- a/client/src/components/task-upsert-modal/task-upsert-modal.container.jsx +++ b/client/src/components/task-upsert-modal/task-upsert-modal.container.jsx @@ -119,9 +119,15 @@ export function TaskUpsertModalContainer({ bodyshop, currentUser, taskUpsert, to taskId: existingTask.id, task: replaceUndefinedWithNull(values) }, - refetchQueries: ["GET_JOB_BY_PK"] + refetchQueries: [] }; + // We have relationship IDS, so we need to refetch the job + if (jobid || joblineid || billid || partsorderid) { + taskObject.refetchQueries.push("GET_JOB_BY_PK"); + } + + // We have a relationship query, so we need to refetch the query if (query && Object.keys(query).length) { taskObject.refetchQueries.push(Object.keys(query)[0]); } @@ -180,9 +186,15 @@ export function TaskUpsertModalContainer({ bodyshop, currentUser, taskUpsert, to } ] }, - refetchQueries: ["GET_JOB_BY_PK"] + refetchQueries: [] }; + // We have relationship IDS, so we need to refetch the job + if (jobid || joblineid || billid || partsorderid) { + newTaskObject.refetchQueries.push("GET_JOB_BY_PK"); + } + + // We have a relationship query, so we need to refetch the query if (query && Object.keys(query).length) { newTaskObject.refetchQueries.push(Object.keys(query)[0]); } diff --git a/client/src/pages/tasks/tasks.page.component.jsx b/client/src/pages/tasks/tasks.page.component.jsx index fee778c25..658c34d7b 100644 --- a/client/src/pages/tasks/tasks.page.component.jsx +++ b/client/src/pages/tasks/tasks.page.component.jsx @@ -4,7 +4,7 @@ import { QUERY_ALL_TASKS_PAGINATED, QUERY_MY_TASKS_PAGINATED } from "../../graph import taskPageTypes from "./taskPageTypes.jsx"; import { createStructuredSelector } from "reselect"; import { selectCurrentUser } from "../../redux/user/user.selectors.js"; -import {connect} from "react-redux"; +import { connect } from "react-redux"; const mapStateToProps = createStructuredSelector({ currentUser: selectCurrentUser @@ -13,7 +13,7 @@ const mapDispatchToProps = (dispatch) => ({}); export default connect(mapStateToProps, mapDispatchToProps)(TasksPageComponent); -export function TasksPageComponent({ currentUser, type }) { +export function TasksPageComponent({ currentUser, type }) { switch (type) { case taskPageTypes.MY_TASKS: return ( @@ -23,10 +23,17 @@ export function TasksPageComponent({ currentUser, type }) { relationshipType={"user"} query={{ QUERY_MY_TASKS_PAGINATED }} titleTranslation={"tasks.titles.my_tasks"} + disableJobRefetch={true} /> ); case taskPageTypes.ALL_TASKS: - return ; + return ( + + ); default: return <>; }