diff --git a/client/package.json b/client/package.json index 3373c3e73..ec9305a90 100644 --- a/client/package.json +++ b/client/package.json @@ -90,6 +90,9 @@ "start:imex": "dotenvx run --env-file=.env.development.imex -- vite", "start:rome": "dotenvx run --env-file=.env.development.rome -- vite", "start:promanager": "dotenvx run --env-file=.env.development.promanager -- vite", + "preview:imex": "dotenvx run --env-file=.env.development.imex -- vite preview", + "preview:rome": "dotenvx run --env-file=.env.development.rome -- vite preview", + "preview:promanager": "dotenvx run --env-file=.env.development.promanager -- vite preview", "build:test:imex": "env-cmd -f .env.test.imex npm run build", "build:test:rome": "env-cmd -f .env.test.rome npm run build", "build:test:promanager": "env-cmd -f .env.test.promanager npm run build", diff --git a/client/src/components/dms-customer-selector/dms-customer-selector.component.jsx b/client/src/components/dms-customer-selector/dms-customer-selector.component.jsx index ec82d36d3..3760ea579 100644 --- a/client/src/components/dms-customer-selector/dms-customer-selector.component.jsx +++ b/client/src/components/dms-customer-selector/dms-customer-selector.component.jsx @@ -1,37 +1,51 @@ import { Button, Checkbox, Col, Table } from "antd"; -import React, { useState } from "react"; +import React, { useContext, useEffect, useState } from "react"; import { useTranslation } from "react-i18next"; import { connect } from "react-redux"; import { createStructuredSelector } from "reselect"; -import { socket } from "../../pages/dms/dms.container"; import { selectBodyshop } from "../../redux/user/user.selectors"; import { alphaSort } from "../../utils/sorters"; +import SocketContext from "../../contexts/SocketIO/socketContext"; // Import Socket Context const mapStateToProps = createStructuredSelector({ bodyshop: selectBodyshop }); -const mapDispatchToProps = (dispatch) => ({ - //setUserLanguage: language => dispatch(setUserLanguage(language)) -}); +const mapDispatchToProps = (dispatch) => ({}); + export default connect(mapStateToProps, mapDispatchToProps)(DmsCustomerSelector); export function DmsCustomerSelector({ bodyshop }) { const { t } = useTranslation(); - const [customerList, setcustomerList] = useState([]); + const { socket } = useContext(SocketContext); // Use Socket Context + const [customerList, setCustomerList] = useState([]); const [open, setOpen] = useState(false); const [selectedCustomer, setSelectedCustomer] = useState(null); const [dmsType, setDmsType] = useState("cdk"); - socket.on("cdk-select-customer", (customerList, callback) => { - setOpen(true); - setDmsType("cdk"); - setcustomerList(customerList); - }); - socket.on("pbs-select-customer", (customerList, callback) => { - setOpen(true); - setDmsType("pbs"); - setcustomerList(customerList); - }); + useEffect(() => { + if (socket) { + const handleCdkSelectCustomer = (customerList) => { + setOpen(true); + setDmsType("cdk"); + setCustomerList(customerList); + }; + + const handlePbsSelectCustomer = (customerList) => { + setOpen(true); + setDmsType("pbs"); + setCustomerList(customerList); + }; + + socket.on("cdk-select-customer", handleCdkSelectCustomer); + socket.on("pbs-select-customer", handlePbsSelectCustomer); + + // Clean up listeners on unmount + return () => { + socket.off("cdk-select-customer", handleCdkSelectCustomer); + socket.off("pbs-select-customer", handlePbsSelectCustomer); + }; + } + }, [socket]); const onUseSelected = () => { setOpen(false); @@ -69,17 +83,11 @@ export function DmsCustomerSelector({ bodyshop }) { key: "name1", sorter: (a, b) => alphaSort(a.name1 && a.name1.fullName, b.name1 && b.name1.fullName) }, - { title: t("jobs.fields.dms.address"), - //dataIndex: ["name2", "fullName"], key: "address", - render: (record, value) => - `${ - record.address && record.address.addressLine && record.address.addressLine[0] - }, ${record.address && record.address.city} ${ - record.address && record.address.stateOrProvince - } ${record.address && record.address.postalCode}` + render: (record) => + `${record.address?.addressLine?.[0]}, ${record.address?.city} ${record.address?.stateOrProvince} ${record.address?.postalCode}` } ]; @@ -95,15 +103,15 @@ export function DmsCustomerSelector({ bodyshop }) { sorter: (a, b) => alphaSort(a.LastName, b.LastName), render: (text, record) => `${record.FirstName || ""} ${record.LastName || ""}` }, - { title: t("jobs.fields.dms.address"), key: "address", - render: (record, value) => `${record.Address}, ${record.City} ${record.State} ${record.ZipCode}` + render: (record) => `${record.Address}, ${record.City} ${record.State} ${record.ZipCode}` } ]; if (!open) return null; + return (