diff --git a/client/src/components/chat-popup/chat-popup.component.jsx b/client/src/components/chat-popup/chat-popup.component.jsx index a6392608a..f0805345a 100644 --- a/client/src/components/chat-popup/chat-popup.component.jsx +++ b/client/src/components/chat-popup/chat-popup.component.jsx @@ -108,9 +108,12 @@ export function ChatPopupComponent({ chatVisible, selectedConversation, toggleCh hasLoadedConversationsOnceRef.current = true; getConversations({ variables: { offset: 0 } }).catch((err) => { - console.error(`Error fetching conversations: ${err?.message || ""}`, err); + // Ignore abort errors (they're expected when component unmounts) + if (err?.name !== "AbortError") { + console.error(`Error fetching conversations: ${err?.message || ""}`, err); + } }); - }, [getConversations]); + }, []); const handleManualRefresh = async () => { try { diff --git a/client/src/components/jobs-detail-header/jobs-detail-header.component.jsx b/client/src/components/jobs-detail-header/jobs-detail-header.component.jsx index 0b05d66be..a3a0bd89f 100644 --- a/client/src/components/jobs-detail-header/jobs-detail-header.component.jsx +++ b/client/src/components/jobs-detail-header/jobs-detail-header.component.jsx @@ -143,7 +143,7 @@ export function JobsDetailHeader({ job, bodyshop, disabled, insertAuditTrail, is label={t("jobs.fields.comment")} styles={{ value: { overflow: "hidden", textOverflow: "ellipsis" } }} > - + {!isPartsEntry && {job.ins_co_nm}} {job.clm_no} @@ -176,7 +176,7 @@ export function JobsDetailHeader({ job, bodyshop, disabled, insertAuditTrail, is )} - + diff --git a/client/src/components/production-list-columns/production-list-columns.comment.component.jsx b/client/src/components/production-list-columns/production-list-columns.comment.component.jsx index c52e107a9..b2e730842 100644 --- a/client/src/components/production-list-columns/production-list-columns.comment.component.jsx +++ b/client/src/components/production-list-columns/production-list-columns.comment.component.jsx @@ -7,7 +7,7 @@ import { FaRegStickyNote } from "react-icons/fa"; import { UPDATE_JOB } from "../../graphql/jobs.queries"; import { logImEXEvent } from "../../firebase/firebase.utils"; -export default function ProductionListColumnComment({ record }) { +export default function ProductionListColumnComment({ record, usePortal = false }) { const { t } = useTranslation(); const [note, setNote] = useState(record.comment || ""); @@ -43,16 +43,20 @@ export default function ProductionListColumnComment({ record }) { }; const content = ( - e.stopPropagation()} onClick={(e) => e.stopPropagation()}> + e.stopPropagation()} + onPointerDown={(e) => e.stopPropagation()} + > e.stopPropagation()} - onClick={(e) => e.stopPropagation()} /> @@ -63,7 +67,15 @@ export default function ProductionListColumnComment({ record }) { ); return ( - + trigger.parentElement || document.body } : {})} + > ({ setNoteUpsertContext: (context) => dispatch(setModalContext({ context: context, modal: "noteUpsert" })) }); -function ProductionListColumnProductionNote({ record, setNoteUpsertContext }) { +function ProductionListColumnProductionNote({ record, setNoteUpsertContext, usePortal = false }) { const { t } = useTranslation(); const [note, setNote] = useState(record.production_vars?.note || ""); const [open, setOpen] = useState(false); @@ -59,16 +59,20 @@ function ProductionListColumnProductionNote({ record, setNoteUpsertContext }) { ); const content = ( - e.stopPropagation()} onClick={(e) => e.stopPropagation()}> + e.stopPropagation()} + onPointerDown={(e) => e.stopPropagation()} + > e.stopPropagation()} - onClick={(e) => e.stopPropagation()} /> @@ -92,7 +96,15 @@ function ProductionListColumnProductionNote({ record, setNoteUpsertContext }) { ); return ( - + trigger.parentElement || document.body } : {})} + >