import { MinusCircleTwoTone, PlusCircleTwoTone, SyncOutlined } from "@ant-design/icons"; import { useQuery } from "@apollo/client"; import { Button, Card, Space, Table } from "antd"; import queryString from "query-string"; import React from "react"; import { useTranslation } from "react-i18next"; import { connect } from "react-redux"; import { useLocation, useNavigate } from "react-router-dom"; import { createStructuredSelector } from "reselect"; import AlertComponent from "../../components/alert/alert.component"; import PartsDispatchExpander from "../../components/parts-dispatch-expander/parts-dispatch-expander.component"; import { GET_UNACCEPTED_PARTS_DISPATCH } from "../../graphql/parts-dispatch.queries"; import { selectTechnician } from "../../redux/tech/tech.selectors"; import { selectBodyshop } from "../../redux/user/user.selectors"; import { alphaSort } from "../../utils/sorters"; import { useSplitTreatments } from "@splitsoftware/splitio-react"; const mapStateToProps = createStructuredSelector({ //currentUser: selectCurrentUser technician: selectTechnician, bodyshop: selectBodyshop }); const mapDispatchToProps = (dispatch) => ({}); export function TechDispatchedParts({ technician, bodyshop }) { const searchParams = queryString.parse(useLocation().search); const { page } = searchParams; const { treatments: { Enhanced_Payroll } } = useSplitTreatments({ attributes: {}, names: ["Enhanced_Payroll"], splitKey: bodyshop.imexshopid }); const { loading, error, data, refetch } = useQuery(GET_UNACCEPTED_PARTS_DISPATCH, { variables: { techId: technician.id, offset: page ? (page - 1) * 25 : 0, limit: 25 } }); const { t } = useTranslation(); const history = useNavigate(); if (error) return ; const parts_dispatch = data?.parts_dispatch; const columns = [ { title: t("jobs.fields.ro_number"), dataIndex: "job.ro_number", key: "ro_number", sorter: (a, b) => alphaSort(a.ro_number, b.ro_number), render: (text, record) => record.job.ro_number || t("general.labels.na") }, { title: t("jobs.fields.status"), dataIndex: "status", key: "status", sorter: (a, b) => alphaSort(a.status, b.status), render: (text, record) => { return record.job.status || t("general.labels.na"); } }, { title: t("jobs.fields.vehicle"), dataIndex: "vehicle", key: "vehicle", ellipsis: true, render: (text, record) => ( {`${record.job.v_model_yr || ""} ${record.job.v_make_desc || ""} ${record.job.v_model_desc || ""}`} ) }, ...(Enhanced_Payroll.treatment === "on" ? [ { title: t("general.labels.actions"), dataIndex: "actions", key: "actions", render: (text, record) => } ] : []) ]; const handleTableChange = (pagination, filters, sorter) => { searchParams.page = pagination.current; history({ search: queryString.stringify(searchParams) }); }; return ( } > , rowExpandable: (record) => true, //expandRowByClick: true, expandIcon: ({ expanded, onExpand, record }) => expanded ? ( onExpand(record, e)} /> ) : ( onExpand(record, e)} /> ) }} /> ); } export default connect(mapStateToProps, mapDispatchToProps)(TechDispatchedParts);