feature/IO-3048-Fix-Job-Bug-Messaging - Fix tag weirdness and a vite error

Signed-off-by: Dave Richer <dave@imexsystems.ca>
This commit is contained in:
Dave Richer
2024-12-03 09:48:52 -08:00
parent 11b906103a
commit 15ba2a1caf
4 changed files with 59 additions and 47 deletions

View File

@@ -334,12 +334,47 @@ export const registerMessagingHandlers = ({ socket, client }) => {
break;
case "tag-added":
// Ensure `job_conversations` is properly formatted
const formattedJobConversations = job_conversations.map((jc) => ({
__typename: "job_conversations",
jobid: jc.jobid || jc.job?.id,
conversationid: conversationId,
job: jc.job || {
__typename: "jobs",
id: data.selectedJob.id,
ro_number: data.selectedJob.ro_number,
ownr_co_nm: data.selectedJob.ownr_co_nm,
ownr_fn: data.selectedJob.ownr_fn,
ownr_ln: data.selectedJob.ownr_ln
}
}));
client.cache.modify({
id: client.cache.identify({ __typename: "conversations", id: conversationId }),
fields: {
job_conversations: (existing = []) => [...existing, ...job_conversations]
job_conversations: (existing = []) => {
// Ensure no duplicates based on `jobid`
const existingIds = new Set(
existing.map(
(jc) =>
client.cache.readFragment({
id: client.cache.identify(jc),
fragment: gql`
fragment JobConversationId on job_conversations {
jobid
}
`
})?.jobid
)
);
const newItems = formattedJobConversations.filter((jc) => !existingIds.has(jc.jobid));
return [...existing, ...newItems];
}
}
});
break;
case "tag-removed":