import { Col, Row } from "antd";
import React from "react";
import AlertComponent from "../alert/alert.component";
import BillDetailEditcontainer from "../bill-detail-edit/bill-detail-edit.container";
import BillsListTable from "../bills-list-table/bills-list-table.component";
import JobBillsTotal from "../job-bills-total/job-bills-total.component";
import PartsOrderListTableComponent from "../parts-order-list-table/parts-order-list-table.component";
import PartsOrderModal from "../parts-order-modal/parts-order-modal.container";
import PartsDispatchTable from "../parts-dispatch-table/parts-dispatch-table.component";
import FeatureWrapperComponent from "../feature-wrapper/feature-wrapper.component";

export default function JobsDetailPliComponent({
  job,
  billsQuery,
  handleBillOnRowClick,
  handlePartsOrderOnRowClick,
  handlePartsDispatchOnRowClick
}) {
  return (
    <div>
      <PartsOrderModal />
      {billsQuery.error ? <AlertComponent message={billsQuery.error.message} type="error" /> : null}
      <BillDetailEditcontainer />
      <Row gutter={[16, 16]}>
        <FeatureWrapperComponent featureName="bills" noauth={() => null}>
          <Col span={24}>
            <JobBillsTotal
              bills={billsQuery.data ? billsQuery.data.bills : []}
              partsOrders={billsQuery.data ? billsQuery.data.parts_orders : []}
              loading={billsQuery.loading}
              jobTotals={job.job_totals}
            />
          </Col>
        </FeatureWrapperComponent>
        <Col span={24}>
          <PartsOrderListTableComponent
            job={job}
            handleOnRowClick={handlePartsOrderOnRowClick}
            billsQuery={billsQuery}
          />
        </Col>
        <FeatureWrapperComponent featureName="bills" noauth={() => null}>
          <Col span={24}>
            <BillsListTable job={job} handleOnRowClick={handleBillOnRowClick} billsQuery={billsQuery} />
          </Col>
        </FeatureWrapperComponent>
        <Col span={24}>
          <PartsDispatchTable job={job} handleOnRowClick={handlePartsDispatchOnRowClick} billsQuery={billsQuery} />
        </Col>
      </Row>
    </div>
  );
}
