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

View File

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