import { EditFilled, SyncOutlined } from "@ant-design/icons"; import { Button, Card, Checkbox, Input, Space, Table } from "antd"; import { useState } from "react"; import { useTranslation } from "react-i18next"; import { FaTasks } from "react-icons/fa"; import { connect } from "react-redux"; import { createStructuredSelector } from "reselect"; import { logImEXEvent } from "../../firebase/firebase.utils"; import { selectJobReadOnly } from "../../redux/application/application.selectors"; import { setModalContext } from "../../redux/modals/modals.actions"; import { selectBodyshop } from "../../redux/user/user.selectors"; import CurrencyFormatter from "../../utils/CurrencyFormatter"; import { DateFormatter } from "../../utils/DateFormatter"; import { alphaSort, dateSort } from "../../utils/sorters"; import { TemplateList } from "../../utils/TemplateConstants"; import BillDeleteButton from "../bill-delete-button/bill-delete-button.component"; import BillDetailEditReturnComponent from "../bill-detail-edit/bill-detail-edit-return.component"; import { HasFeatureAccess } from "../feature-wrapper/feature-wrapper.component"; import LockerWrapperComponent from "../lock-wrapper/lock-wrapper.component"; import PrintWrapperComponent from "../print-wrapper/print-wrapper.component"; import UpsellComponent, { upsellEnum } from "../upsell/upsell.component"; const mapStateToProps = createStructuredSelector({ jobRO: selectJobReadOnly, bodyshop: selectBodyshop }); const mapDispatchToProps = (dispatch) => ({ setBillEnterContext: (context) => dispatch( setModalContext({ context: context, modal: "billEnter" }) ), setReconciliationContext: (context) => dispatch( setModalContext({ context: context, modal: "reconciliation" }) ), setTaskUpsertContext: (context) => dispatch(setModalContext({ context, modal: "taskUpsert" })) }); export function BillsListTableComponent({ bodyshop, jobRO, job, billsQuery, handleOnRowClick, setBillEnterContext, setReconciliationContext, setTaskUpsertContext }) { const { t } = useTranslation(); const [state, setState] = useState({ sortedInfo: {} }); // const search = queryString.parse(useLocation().search); // const selectedBill = search.billid; const [searchText, setSearchText] = useState(""); const Templates = TemplateList("bill"); const bills = billsQuery.data ? billsQuery.data.bills : []; const { refetch } = billsQuery; const recordActions = (record, showView = false) => ( {showView && ( )} ) : null} { e.preventDefault(); setSearchText(e.target.value); }} enterButton /> } > }) }} /> ); } export default connect(mapStateToProps, mapDispatchToProps)(BillsListTableComponent);