release/2025-08-01 - Fix Notes via refetch queries, cache manipulation too complex
This commit is contained in:
@@ -1,44 +1,17 @@
|
||||
import { PushpinFilled, PushpinOutlined } from "@ant-design/icons";
|
||||
import { useMutation } from "@apollo/client";
|
||||
import { GET_JOB_BY_PK } from "../../graphql/jobs.queries";
|
||||
import { UPDATE_NOTE } from "../../graphql/notes.queries";
|
||||
|
||||
function JobNotesPinToggle({ note }) {
|
||||
const [updateNote] = useMutation(UPDATE_NOTE, {
|
||||
update(cache, { data: { updateNote: updatedNote } }) {
|
||||
try {
|
||||
const existingJob = cache.readQuery({
|
||||
query: GET_JOB_BY_PK,
|
||||
variables: { id: note.jobid }
|
||||
});
|
||||
|
||||
if (existingJob) {
|
||||
cache.writeQuery({
|
||||
query: GET_JOB_BY_PK,
|
||||
variables: { id: note.jobid },
|
||||
data: {
|
||||
...existingJob,
|
||||
job: {
|
||||
...existingJob.job,
|
||||
notes: updatedNote.pinned
|
||||
? [updatedNote, ...existingJob.job.notes]
|
||||
: existingJob.job.notes.filter((n) => n.id !== updatedNote.id)
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
} catch (error) {
|
||||
// Query not yet executed is most likely. No logging as this isn't a fatal error.
|
||||
}
|
||||
}
|
||||
});
|
||||
const [updateNote] = useMutation(UPDATE_NOTE);
|
||||
|
||||
const handlePinToggle = () => {
|
||||
updateNote({
|
||||
variables: {
|
||||
noteId: note.id,
|
||||
note: { pinned: !note.pinned }
|
||||
}
|
||||
},
|
||||
refetchQueries: ["GET_JOB_BY_PK", "QUERY_JOB_CARD_DETAILS", "QUERY_PARTS_QUEUE_CARD_DETAILS"]
|
||||
});
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user