fixed: employee fetching inside assign task

This commit is contained in:
pramod mahajan 2025-07-18 17:09:49 +05:30
parent 23998d8735
commit b84275a7a3
2 changed files with 23 additions and 21 deletions

View File

@ -15,8 +15,7 @@ import { useCreateTask } from "../../hooks/useTasks";
const AssignTask = ({ assignData, onClose, setAssigned }) => {
const maxPlanned =
assignData?.workItem?.plannedWork -
assignData?.workItem?.completedWork;
assignData?.workItem?.plannedWork - assignData?.workItem?.completedWork;
const schema = z.object({
selectedEmployees: z
.array(z.string())
@ -71,7 +70,7 @@ const AssignTask = ({ assignData, onClose, setAssigned }) => {
} else {
console.warn("Bootstrap is not available. Popovers might not function.");
}
}, []);
}, []);
const selectedProject = useSelector(
(store) => store.localVariables.projectId
);
@ -79,13 +78,13 @@ const AssignTask = ({ assignData, onClose, setAssigned }) => {
employees,
loading: employeeLoading,
recallEmployeeData,
} = useEmployeesAllOrByProjectId(selectedProject, false);
} = useEmployeesAllOrByProjectId(false, selectedProject, false);
const dispatch = useDispatch();
const { loading } = useMaster();
const {data:jobRoleData} = useMaster();
const { loading } = useMaster();
const { data: jobRoleData } = useMaster();
const [selectedRole, setSelectedRole] = useState("all");
const [displayedSelection, setDisplayedSelection] = useState("");
const [displayedSelection, setDisplayedSelection] = useState("");
const {
handleSubmit,
control,
@ -93,19 +92,19 @@ const AssignTask = ({ assignData, onClose, setAssigned }) => {
watch,
formState: { errors },
reset,
trigger,
trigger,
} = useForm({
defaultValues: {
selectedEmployees: [],
description: "",
plannedTask: "",
},
resolver: zodResolver(schema),
resolver: zodResolver(schema),
});
const handleCheckboxChange = (event, user) => {
const isChecked = event.target.checked;
let updatedSelectedEmployees = watch("selectedEmployees") || [];
let updatedSelectedEmployees = watch("selectedEmployees") || [];
if (isChecked) {
if (!updatedSelectedEmployees.includes(user.id)) {
@ -117,12 +116,12 @@ const AssignTask = ({ assignData, onClose, setAssigned }) => {
);
}
setValue("selectedEmployees", updatedSelectedEmployees);
trigger("selectedEmployees");
trigger("selectedEmployees");
};
useEffect(() => {
dispatch(changeMaster("Job Role"));
return () => setSelectedRole("all");
}, [dispatch]);
@ -137,11 +136,12 @@ const AssignTask = ({ assignData, onClose, setAssigned }) => {
(emp) => String(emp.jobRoleId || "") === selectedRole
);
const onSubmit = (data) => {
const selectedEmployeeIds = data.selectedEmployees;
const taskTeamWithDetails = selectedEmployeeIds?.map((empId) => empId)?.filter(Boolean);
const taskTeamWithDetails = selectedEmployeeIds
?.map((empId) => empId)
?.filter(Boolean);
const formattedData = {
taskTeam: taskTeamWithDetails,
plannedTask: data.plannedTask,
@ -149,7 +149,10 @@ const AssignTask = ({ assignData, onClose, setAssigned }) => {
assignmentDate: new Date().toISOString(),
workItemId: assignData?.workItem.id,
};
assignTask({payload:formattedData,workAreaId:assignData?.workArea?.id});
assignTask({
payload: formattedData,
workAreaId: assignData?.workArea?.id,
});
};
const closedModel = () => {
@ -234,12 +237,12 @@ const AssignTask = ({ assignData, onClose, setAssigned }) => {
<div className="col-12 h-sm-25 overflow-auto mt-2">
{selectedRole !== "" && (
<div className="row">
{loading ? ( // Assuming 'loading' here refers to master data loading
{employeeLoading ? (
<div className="col-12">
<p className="text-center">Loading roles...</p>
<p className="text-center">Loading employees...</p>
</div>
) : filteredEmployees?.length > 0 ? (
filteredEmployees?.map((emp) => {
filteredEmployees.map((emp) => {
const jobRole = jobRoleData?.find(
(role) => role?.id === emp?.jobRoleId
);
@ -331,7 +334,7 @@ const AssignTask = ({ assignData, onClose, setAssigned }) => {
"selectedEmployees",
updatedSelected
);
trigger("selectedEmployees");
trigger("selectedEmployees");
}}
>
<i className="icon-base bx bx-x icon-md "></i>
@ -348,7 +351,6 @@ const AssignTask = ({ assignData, onClose, setAssigned }) => {
{!loading && errors.selectedEmployees && (
<div className="danger-text mt-1">
<p>{errors.selectedEmployees.message}</p>{" "}
</div>
)}

View File

@ -125,7 +125,7 @@ const WorkArea = ({ workArea, floor, forBuilding }) => {
{isLoading || ProjectTaskList === undefined ? (
<div className="text-center py-2 text-muted">Loading activities...</div>
) : ProjectTaskList?.length === 0 ? (
<div className="text-center py-2 text-muted">Loading activities...</div>
<div className="text-center py-2 text-muted">No activities available for this work area.</div>
):ProjectTaskList?.length > 0 ? (
<table className="table table-sm mx-1">
<thead>