import React, { useState, useEffect } from "react";
import AssignTask from "../AssignTask";
import { useParams } from "react-router-dom";
import EditActivityModal from "./EditActivityModal";
import { useHasUserPermission } from "../../../hooks/useHasUserPermission";
import {
ASSIGN_REPORT_TASK,
MANAGE_PROJECT_INFRA,
MANAGE_TASK,
} from "../../../utils/constants";
import ConfirmModal from "../../common/ConfirmModal";
import ProjectRepository from "../../../repositories/ProjectRepository";
import { useDeleteProjectTask, useProjectDetails } from "../../../hooks/useProjects";
import showToast from "../../../services/toastService";
import {
cacheData,
clearCacheKey,
getCachedData,
} from "../../../slices/apiDataManager";
import { refreshData } from "../../../slices/localVariablesSlice";
import GlobalModel from "../../common/GlobalModel";
import {useDeleteMasterItem} from "../../../hooks/masterHook/useMaster";
const WorkItem = ({
workItem,
forBuilding,
forFloor,
forWorkArea,
deleteHandleTask,
}) => {
const { projectId } = useParams();
const [itemName, setItemName] = useState("");
const [NewWorkItem, setNewWorkItem] = useState();
const [isModalOpen, setIsModalOpen] = useState(false);
const [showModal, setShowModal] = useState(false);
const [showModal2, setShowModal2] = useState(false);
const ManageTasks = useHasUserPermission(MANAGE_TASK);
const ManageInfra = useHasUserPermission(MANAGE_PROJECT_INFRA);
const ManageAndAssignTak = useHasUserPermission(ASSIGN_REPORT_TASK);
const [loadingDelete, setLoadingDelete] = useState(false);
const project = getCachedData("projectInfo");
const openModal = () => setIsModalOpen(true);
const closeModal = () => setIsModalOpen( false );
const showModalDelete = () => setShowModal2(true);
const closeModalDelete = () => setShowModal2(false);
const getProgress = (planned, completed) => {
return (completed * 100) / planned + "%";
};
const {mutate:DeleteTask,isPending } = useDeleteProjectTask(() => {
closeModalDelete?.();
});
const handleAssignTask = () => {
setItemName("");
};
useEffect(() => {
setNewWorkItem(workItem);
}, [workItem]);
const refreshWorkItem = (plannedTask) =>{
if (workItem) {
const updated = {
...workItem,
todaysAssigned: (workItem.todaysAssigned || 0) + plannedTask,
};
setNewWorkItem(updated);
}
}
let assigndata = {
building: forBuilding,
floor: forFloor,
workArea: forWorkArea,
workItem,
};
const hasWorkItem = NewWorkItem && NewWorkItem;
useEffect(() => {
const tooltipTriggerList = Array.from(
document.querySelectorAll('[data-bs-toggle="tooltip"]')
);
tooltipTriggerList.forEach((el) => new bootstrap.Tooltip(el));
}, []);
const handleSubmit = async () => {
let WorkItemId = workItem.workItemId || workItem.id;
DeleteTask({workItemId:WorkItemId,workAreaId:forWorkArea?.id})
};
const PlannedWork =
NewWorkItem?.workItem?.plannedWork || workItem?.plannedWork;
const CompletedWork =
NewWorkItem?.workItem?.completedWork ?? workItem?.completedWork;
return (
<>
{isModalOpen && (