import { CheckCircleFilled, EyeInvisibleFilled } from "@ant-design/icons"; import { Button, List, notification, Popover } from "antd"; import React, { useMemo, useState } from "react"; import { useMutation } from "react-apollo"; import { useTranslation } from "react-i18next"; import { UPDATE_JOB_LINE } from "../../graphql/jobs-lines.queries"; export default function ProductionSubletsManageComponent({ subletJobLines }) { const { t } = useTranslation(); const [updateJobLine] = useMutation(UPDATE_JOB_LINE); const [loading, setLoading] = useState(false); const subletCount = useMemo(() => { return { total: subletJobLines.filter((s) => !s.sublet_ignored).length, outstanding: subletJobLines.filter( (s) => !s.sublet_ignored && !s.sublet_completed ).length, }; }, [subletJobLines]); const handleSubletMark = async (sublet, action) => { setLoading(true); const result = await updateJobLine({ variables: { lineId: sublet.id, line: { sublet_completed: action === "complete" ? !sublet.sublet_completed : false, sublet_ignored: action === "ignore" ? !sublet.sublet_ignored : false, }, }, }); if (!!result.errors) { notification["error"]({ message: t("joblines.errors.updating", { message: JSON.stringify(result.errors), }), }); } else { notification["success"]({ message: t("joblines.successes.updated"), }); } setLoading(false); }; const popContent = (