feature/IO-2924-Refactor-Production-Board-For-Sockets - Checkpoint
Signed-off-by: Dave Richer <dave@imexsystems.ca>
This commit is contained in:
@@ -1,3 +1,4 @@
|
|||||||
|
import dayjs from "../../utils/day";
|
||||||
import { SyncOutlined } from "@ant-design/icons";
|
import { SyncOutlined } from "@ant-design/icons";
|
||||||
import { useApolloClient } from "@apollo/client";
|
import { useApolloClient } from "@apollo/client";
|
||||||
import Board from "./trello-board/index";
|
import Board from "./trello-board/index";
|
||||||
@@ -51,7 +52,6 @@ function ProductionBoardKanbanComponent({ data, bodyshop, refetch, insertAuditTr
|
|||||||
const { t } = useTranslation();
|
const { t } = useTranslation();
|
||||||
const client = useApolloClient();
|
const client = useApolloClient();
|
||||||
|
|
||||||
// Update the lanes or cards based on job update event
|
|
||||||
const handleJobUpdated = useCallback(
|
const handleJobUpdated = useCallback(
|
||||||
(updatedJob) => {
|
(updatedJob) => {
|
||||||
setBoardLanes((prevBoardLanes) => {
|
setBoardLanes((prevBoardLanes) => {
|
||||||
@@ -99,7 +99,16 @@ function ProductionBoardKanbanComponent({ data, bodyshop, refetch, insertAuditTr
|
|||||||
|
|
||||||
// Iterate through the properties of updatedJob and update the corresponding values in currentCard.metadata
|
// Iterate through the properties of updatedJob and update the corresponding values in currentCard.metadata
|
||||||
Object.keys(updatedJob).forEach((key) => {
|
Object.keys(updatedJob).forEach((key) => {
|
||||||
if (key in currentCard.metadata && currentCard.metadata[key] !== updatedJob[key]) {
|
// Normalize date fields by comparing their ISO strings or timestamps
|
||||||
|
if (key === "updated_at") {
|
||||||
|
const currentCardDate = dayjs(currentCard.metadata[key]).toISOString();
|
||||||
|
const updatedJobDate = dayjs(updatedJob[key]).toISOString();
|
||||||
|
|
||||||
|
if (currentCardDate !== updatedJobDate) {
|
||||||
|
console.log(`Updating ${key} from ${currentCardDate} to ${updatedJobDate}`);
|
||||||
|
currentCard.metadata[key] = updatedJob[key]; // Assign the new value if different
|
||||||
|
}
|
||||||
|
} else if (key in currentCard.metadata && currentCard.metadata[key] !== updatedJob[key]) {
|
||||||
console.log(`Updating ${key} from ${currentCard.metadata[key]} to ${updatedJob[key]}`);
|
console.log(`Updating ${key} from ${currentCard.metadata[key]} to ${updatedJob[key]}`);
|
||||||
currentCard.metadata[key] = updatedJob[key];
|
currentCard.metadata[key] = updatedJob[key];
|
||||||
}
|
}
|
||||||
@@ -132,7 +141,6 @@ function ProductionBoardKanbanComponent({ data, bodyshop, refetch, insertAuditTr
|
|||||||
else if (isDataChanged && !isLaneChanged) {
|
else if (isDataChanged && !isLaneChanged) {
|
||||||
console.log("Case 2: Only Data Changed");
|
console.log("Case 2: Only Data Changed");
|
||||||
sourceLane.cards[cardIndex] = { ...currentCard, metadata: { ...currentCard.metadata } };
|
sourceLane.cards[cardIndex] = { ...currentCard, metadata: { ...currentCard.metadata } };
|
||||||
// sourceLane.cards = [...sourceLane.cards]; // Force shallow change for re-render
|
|
||||||
}
|
}
|
||||||
// Case 3: Only the lane has changed
|
// Case 3: Only the lane has changed
|
||||||
else if (!isDataChanged && isLaneChanged) {
|
else if (!isDataChanged && isLaneChanged) {
|
||||||
|
|||||||
Reference in New Issue
Block a user