import { useMutation } from "@apollo/client";
import {
Button,
Card,
Col,
Form,
InputNumber,
notification,
Popover,
Row,
Select,
} from "antd";
import axios from "axios";
import React, { useState } from "react";
import { useTranslation } from "react-i18next";
import { connect } from "react-redux";
import { createStructuredSelector } from "reselect";
import { logImEXEvent } from "../../firebase/firebase.utils";
import { UPDATE_TIME_TICKET } from "../../graphql/timetickets.queries";
import { selectTechnician } from "../../redux/tech/tech.selectors";
import { selectBodyshop } from "../../redux/user/user.selectors";
import TechJobClockoutDelete from "../tech-job-clock-out-delete/tech-job-clock-out-delete.component";
import { LaborAllocationContainer } from "../time-ticket-modal/time-ticket-modal.component";
const mapStateToProps = createStructuredSelector({
bodyshop: selectBodyshop,
technician: selectTechnician,
});
export function TechClockOffButton({
bodyshop,
technician,
jobId,
timeTicketId,
completedCallback,
isShiftTicket,
otherBtnProps,
}) {
const [loading, setLoading] = useState(false);
const [updateTimeticket] = useMutation(UPDATE_TIME_TICKET);
const [form] = Form.useForm();
const { t } = useTranslation();
const emps = bodyshop.employees.filter(
(e) => e.id === (technician && technician.id)
)[0];
const handleFinish = async (values) => {
logImEXEvent("tech_clock_out_job");
setLoading(true);
const result = await updateTimeticket({
variables: {
timeticketId: timeTicketId,
timeticket: {
clockoff: (await axios.post("/utils/time")).data,
...values,
},
},
});
if (!!result.errors) {
notification["error"]({
message: t("timetickets.errors.clockingout", {
message: JSON.stringify(result.errors),
}),
});
} else {
notification["success"]({
message: t("timetickets.successes.clockedout"),
});
}
setLoading(false);
if (completedCallback) completedCallback();
};
const overlay = (
);
return (
);
}
export default connect(mapStateToProps, null)(TechClockOffButton);