import { useMutation } from "@apollo/client"; import { Button, Form, notification } from "antd"; import React, { useEffect, useState } from "react"; import { useTranslation } from "react-i18next"; import { UPDATE_JOB } from "../../graphql/jobs.queries"; import DateTimePicker from "../form-date-time-picker/form-date-time-picker.component"; import LayoutFormRow from "../layout-form-row/layout-form-row.component"; import moment from "moment"; import FormDatePicker from "../form-date-picker/form-date-picker.component"; import AuditTrailMapping from "../../utils/AuditTrailMappings"; import { connect } from "react-redux"; import { createStructuredSelector } from "reselect"; import { insertAuditTrail } from "../../redux/application/application.actions"; const mapStateToProps = createStructuredSelector({ //currentUser: selectCurrentUser }); const mapDispatchToProps = (dispatch) => ({ insertAuditTrail: ({ jobid, operation }) => dispatch(insertAuditTrail({ jobid, operation })), }); export default connect( mapStateToProps, mapDispatchToProps )(JobsAdminDatesChange); export function JobsAdminDatesChange({ insertAuditTrail, job }) { const { t } = useTranslation(); const [loading, setLoading] = useState(false); const [form] = Form.useForm(); const [updateJob] = useMutation(UPDATE_JOB); const handleFinish = async (values) => { setLoading(true); const result = await updateJob({ variables: { jobId: job.id, job: values }, }); const changedAuditFields = form.getFieldsValue( true, (meta) => meta && meta.touched ); Object.keys(changedAuditFields).forEach((key) => { insertAuditTrail({ jobid: job.id, operation: AuditTrailMapping.admin_jobfieldchange( key, changedAuditFields[key] instanceof moment ? moment(changedAuditFields[key]).format("MM/DD/YYYY hh:mm a") : changedAuditFields[key] ), }); }); if (!!!result.errors) { notification["success"]({ message: t("jobs.successes.save") }); } else { notification["error"]({ message: t("jobs.errors.saving", { error: JSON.stringify(result.errors), }), }); } setLoading(false); //Get the owner details, populate it all back into the job. }; useEffect(() => { //form.resetFields(); }, [form, job]); return (
); }