diff --git a/client/src/components/production-board-kanban/production-board-kanban.container.jsx b/client/src/components/production-board-kanban/production-board-kanban.container.jsx index 364ee2d53..240c1cd6f 100644 --- a/client/src/components/production-board-kanban/production-board-kanban.container.jsx +++ b/client/src/components/production-board-kanban/production-board-kanban.container.jsx @@ -1,4 +1,4 @@ -import React, { useEffect, useMemo } from "react"; +import React, { useEffect, useMemo, useRef } from "react"; import { useQuery, useSubscription } from "@apollo/client"; import { connect } from "react-redux"; import { createStructuredSelector } from "reselect"; @@ -17,6 +17,8 @@ const mapStateToProps = createStructuredSelector({ }); function ProductionBoardKanbanContainer({ bodyshop, currentUser, subscriptionType = "direct" }) { + const fired = useRef(false); // useRef to keep track of whether the subscription fired + const combinedStatuses = useMemo( () => [ ...bodyshop.md_ro_statuses.production_statuses, @@ -47,10 +49,15 @@ function ProductionBoardKanbanContainer({ bodyshop, currentUser, subscriptionTyp // const currentReducerData = useSelector((state) => (state.trello.lanes ? state.trello : {})); useEffect(() => { - if (updatedJobs && data) { - refetch().catch((err) => console.error(`Error re-fetching jobs in production: ${err.message}`)); + if (!updatedJobs) { + return; } - }, [updatedJobs, data, refetch]); + if (!fired.current) { + fired.current = true; + return; + } + refetch().catch((err) => console.error(`Error re-fetching jobs in production: ${err.message}`)); + }, [updatedJobs, refetch]); const filteredAssociationSettings = useMemo(() => { return associationSettings?.associations[0] || null;