import { SyncOutlined } from "@ant-design/icons"; import { useQuery } from "@apollo/client"; import { Button, Card, Checkbox, Input, Space, Table, Typography } from "antd"; import _ from "lodash"; import queryString from "query-string"; import React from "react"; import { useTranslation } from "react-i18next"; import { connect } from "react-redux"; import { Link, useHistory, useLocation } from "react-router-dom"; import { createStructuredSelector } from "reselect"; import AlertComponent from "../../components/alert/alert.component"; import { QUERY_EXPORT_LOG_PAGINATED } from "../../graphql/accounting.queries"; import { selectBodyshop } from "../../redux/user/user.selectors"; import { DateTimeFormatter } from "../../utils/DateFormatter"; import {pageLimit} from "../../utils/config"; const mapStateToProps = createStructuredSelector({ bodyshop: selectBodyshop, }); export function ExportLogsPageComponent({ bodyshop }) { const searchParams = queryString.parse(useLocation().search); const { page, sortcolumn, sortorder, search } = searchParams; const history = useHistory(); const { loading, error, data, refetch } = useQuery( QUERY_EXPORT_LOG_PAGINATED, { fetchPolicy: "network-only", nextFetchPolicy: "network-only", variables: { search: search || "", offset: page ? (page - 1) * pageLimit : 0, limit: pageLimit, order: [ { [sortcolumn || "created_at"]: sortorder ? sortorder === "descend" ? "desc" : "asc" : "desc", }, ], }, } ); const { t } = useTranslation(); if (error) return ; const handleTableChange = (pagination, filters, sorter) => { searchParams.page = pagination.current; searchParams.sortcolumn = sorter.columnKey; searchParams.sortorder = sorter.order; if (filters.status) { searchParams.statusFilters = JSON.stringify( _.flattenDeep(filters.status) ); } else { delete searchParams.statusFilters; } history.push({ search: queryString.stringify(searchParams) }); }; const columns = [ { title: t("general.labels.created_at"), dataIndex: "created_at", key: "created_at", render: (text, record) => ( {record.created_at} ), }, { title: t("employees.fields.user_email"), dataIndex: "useremail", key: "useremail", }, { title: t("jobs.fields.ro_number"), dataIndex: "ro_number", key: "ro_number", render: (text, record) => record.job && ( {(record.job && record.job.ro_number) || t("general.labels.na")} ), }, { title: t("bills.fields.invoice_number"), dataIndex: "invoice_number", key: "invoice_number", render: (text, record) => record.bill && ( {record.bill && record.bill.invoice_number} ), }, { title: t("payments.fields.paymentnum"), dataIndex: "paymentnum", key: "paymentnum", render: (text, record) => record.payment && ( ( ), }, { title: t("general.labels.message"), dataIndex: "message", key: "message", render: (text, record) => record.message && (
    {JSON.parse(record.message).map((m, idx) => (
  • {m}
  • ))}
), }, ]; return ( {searchParams.search && ( <> {t("general.labels.searchresults", { search: searchParams.search, })} )} { searchParams.search = value; history.push({ search: queryString.stringify(searchParams) }); }} /> } > ); } export default connect(mapStateToProps, null)(ExportLogsPageComponent);