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.alert.component.jsx b/client/src/components/production-list-columns/production-list-columns.alert.component.jsx index d6309810e..9e51159ab 100644 --- a/client/src/components/production-list-columns/production-list-columns.alert.component.jsx +++ b/client/src/components/production-list-columns/production-list-columns.alert.component.jsx @@ -63,10 +63,10 @@ const ProductionListColumnAlert = ({ id, productionVars, refetch, insertAuditTra okText={t("general.labels.yes")} cancelText={t("general.labels.no")} > - } /> + } style={{ cursor: "pointer" }} /> ) : ( - } onClick={handleAlertToggle} /> + } onClick={handleAlertToggle} style={{ cursor: "pointer" }} /> ); }; diff --git a/client/src/components/production-list-columns/production-list-columns.bodypriority.component.jsx b/client/src/components/production-list-columns/production-list-columns.bodypriority.component.jsx index e26a74f3e..729aa1fe7 100644 --- a/client/src/components/production-list-columns/production-list-columns.bodypriority.component.jsx +++ b/client/src/components/production-list-columns/production-list-columns.bodypriority.component.jsx @@ -48,7 +48,7 @@ export default function ProductionListColumnBodyPriority({ record }) { return ( - {record.production_vars?.bodypriority} + {record.production_vars?.bodypriority} ); } 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 } : {})} + > ( { store.dispatch( setModalContext({ diff --git a/client/src/components/production-list-columns/production-list-columns.date.component.jsx b/client/src/components/production-list-columns/production-list-columns.date.component.jsx index f69d26491..620fd2b03 100644 --- a/client/src/components/production-list-columns/production-list-columns.date.component.jsx +++ b/client/src/components/production-list-columns/production-list-columns.date.component.jsx @@ -86,7 +86,8 @@ export default function ProductionListDate({ record, field, time, pastIndicator setOpen(true)} style={{ - height: "19px" + height: "19px", + cursor: "pointer" }} className={className} > diff --git a/client/src/components/production-list-columns/production-list-columns.detailpriority.component.jsx b/client/src/components/production-list-columns/production-list-columns.detailpriority.component.jsx index 92abb982a..f3796e9c9 100644 --- a/client/src/components/production-list-columns/production-list-columns.detailpriority.component.jsx +++ b/client/src/components/production-list-columns/production-list-columns.detailpriority.component.jsx @@ -48,7 +48,7 @@ export default function ProductionListColumnDetailPriority({ record }) { return ( - {record.production_vars?.detailpriority} + {record.production_vars?.detailpriority} ); } diff --git a/client/src/components/production-list-columns/production-list-columns.empassignment.component.jsx b/client/src/components/production-list-columns/production-list-columns.empassignment.component.jsx index 0cf3a3793..d96d6f56d 100644 --- a/client/src/components/production-list-columns/production-list-columns.empassignment.component.jsx +++ b/client/src/components/production-list-columns/production-list-columns.empassignment.component.jsx @@ -144,13 +144,13 @@ export function ProductionListEmpAssignment({ insertAuditTrail, bodyshop, record {record[type] ? ( - + {`${theEmployee?.first_name || ""} ${theEmployee?.last_name || ""}`} handleRemove(type)} /> ) : ( { setAssignment({ operation: type }); diff --git a/client/src/components/production-list-columns/production-list-columns.lastcontacted.component.jsx b/client/src/components/production-list-columns/production-list-columns.lastcontacted.component.jsx index 6c6a02492..732189a17 100644 --- a/client/src/components/production-list-columns/production-list-columns.lastcontacted.component.jsx +++ b/client/src/components/production-list-columns/production-list-columns.lastcontacted.component.jsx @@ -124,7 +124,8 @@ export function ProductionLastContacted({ currentUser, record }) { setOpen(true)} style={{ - height: "19px" + height: "19px", + cursor: "pointer" }} > {record.date_last_contacted} diff --git a/client/src/components/production-list-columns/production-list-columns.paintpriority.component.jsx b/client/src/components/production-list-columns/production-list-columns.paintpriority.component.jsx index 8381b08b5..76e1827fe 100644 --- a/client/src/components/production-list-columns/production-list-columns.paintpriority.component.jsx +++ b/client/src/components/production-list-columns/production-list-columns.paintpriority.component.jsx @@ -48,7 +48,7 @@ export default function ProductionListColumnPaintPriority({ record }) { return ( - {record.production_vars?.paintpriority} + {record.production_vars?.paintpriority} ); } diff --git a/client/src/components/production-list-columns/production-list-columns.productionnote.component.jsx b/client/src/components/production-list-columns/production-list-columns.productionnote.component.jsx index 7590947c3..c1e92dfd8 100644 --- a/client/src/components/production-list-columns/production-list-columns.productionnote.component.jsx +++ b/client/src/components/production-list-columns/production-list-columns.productionnote.component.jsx @@ -16,7 +16,7 @@ const mapDispatchToProps = (dispatch) => ({ 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 } : {})} + >