From cee8f23fd92a8acf2a20ff3fc9f6b5a539516cbf Mon Sep 17 00:00:00 2001 From: Vaibhav Surve Date: Tue, 8 Apr 2025 11:16:29 +0530 Subject: [PATCH 1/5] enhance modal handling by adding onClose prop to TaskModel and WorkAreaModel components --- .../Project/Infrastructure/TaskModel.jsx | 14 +- .../Project/Infrastructure/WorkAreaModel.jsx | 4 +- src/components/Project/ProjectInfra.jsx | 306 +++++++++--------- 3 files changed, 159 insertions(+), 165 deletions(-) diff --git a/src/components/Project/Infrastructure/TaskModel.jsx b/src/components/Project/Infrastructure/TaskModel.jsx index c63e4fe5..2b40771a 100644 --- a/src/components/Project/Infrastructure/TaskModel.jsx +++ b/src/components/Project/Infrastructure/TaskModel.jsx @@ -26,7 +26,7 @@ const TaskModel = ({ activities, onSubmit, clearTrigger, - onClearComplete, + onClearComplete,onClose }) => { const [formData, setFormData] = useState(defaultModel); const [selectedBuilding, setSelectedBuilding] = useState(null); @@ -124,12 +124,7 @@ const TaskModel = ({
- + diff --git a/src/components/Project/Infrastructure/WorkAreaModel.jsx b/src/components/Project/Infrastructure/WorkAreaModel.jsx index 05a65612..7dae3403 100644 --- a/src/components/Project/Infrastructure/WorkAreaModel.jsx +++ b/src/components/Project/Infrastructure/WorkAreaModel.jsx @@ -19,7 +19,7 @@ const defaultModel = { floorId: "0", }; -const WorkAreaModel = ({ project, onSubmit, clearTrigger, onClearComplete }) => { +const WorkAreaModel = ({ project, onSubmit, clearTrigger, onClearComplete, onClose }) => { const [selectedBuilding, setSelectedBuilding] = useState(null); const [ selectedFloor, setSelectedFloor ] = useState( null ); const [selectdWorkArea,setWorkArea] = useState() @@ -111,7 +111,7 @@ const WorkAreaModel = ({ project, onSubmit, clearTrigger, onClearComplete }) =>
- +
{isFloorModalOpen && ( )} {isTaskModelOpen && ( )} - + {isModalOpen && ( )} @@ -432,27 +436,25 @@ const ProjectInfra = ({ data, activityMaster, onDataChange,eachSiteEngineer }) = + type="button" + className="link-button m-1" + onClick={() => openFloorModel()} + > + + Manage Floors + +
+ + + Edit + + + +
-
- + + )} ) )} From f9c6d1b7f834c7ecd6feae49918fc58f0e33d006 Mon Sep 17 00:00:00 2001 From: "ashutosh.nehete" Date: Tue, 8 Apr 2025 14:57:16 +0530 Subject: [PATCH 4/5] Fixed the error "project not found" in daily task planning --- src/components/Activities/InfraPlanning.jsx | 2 +- src/hooks/useProjects.js | 7 +++--- src/pages/Activities/TaskPlannng.jsx | 25 ++++++++++++++++----- 3 files changed, 25 insertions(+), 9 deletions(-) diff --git a/src/components/Activities/InfraPlanning.jsx b/src/components/Activities/InfraPlanning.jsx index 3354d25d..d3b16d41 100644 --- a/src/components/Activities/InfraPlanning.jsx +++ b/src/components/Activities/InfraPlanning.jsx @@ -29,7 +29,7 @@ const InfraPlanning = () => useEffect( () => { dispatch(setProjectId(projects[0]?.id)) - }) + },[projects]) return (
diff --git a/src/hooks/useProjects.js b/src/hooks/useProjects.js index f73fa154..3e6e1e7e 100644 --- a/src/hooks/useProjects.js +++ b/src/hooks/useProjects.js @@ -4,6 +4,7 @@ import { getCachedData, } from "../slices/apiDataManager" import ProjectRepository from "../repositories/ProjectRepository"; +import { useProfile } from "./useProfile"; @@ -84,7 +85,7 @@ export const useEmployeesByProjectAllocated = ( selectedProject ) => } export const useProjectDetails =(projectId)=>{ - + const {profile} = useProfile(); const [projects_Details, setProject_Details] = useState(null); const [loading, setLoading] = useState(true); const [error, setError] = useState(""); @@ -113,11 +114,11 @@ export const useProjectDetails =(projectId)=>{ }; useEffect(()=>{ - if ( projectId ) + if ( profile && (projectId != undefined) ) { fetchData() } - },[projectId]) + },[projectId,profile]) return { projects_Details,loading,error,refetch:fetchData} diff --git a/src/pages/Activities/TaskPlannng.jsx b/src/pages/Activities/TaskPlannng.jsx index a6385633..f9e95f50 100644 --- a/src/pages/Activities/TaskPlannng.jsx +++ b/src/pages/Activities/TaskPlannng.jsx @@ -6,10 +6,19 @@ import ProjectRepository from "../../repositories/ProjectRepository"; import Breadcrumb from "../../components/common/Breadcrumb"; import InfraPlanning from "../../components/Activities/InfraPlanning"; import { cacheData, getCachedData } from "../../slices/apiDataManager"; +import { useProfile } from "../../hooks/useProfile"; +import { useDispatch, useSelector } from "react-redux"; +import { useProjectDetails, useProjects } from "../../hooks/useProjects"; +import { setProjectId } from "../../slices/localVariablesSlice"; var projectId; const TaskPlannng = () => { + const {profile} = useProfile(); + const {projects,loading:project_listLoader,error:projects_error} = useProjects(); + const dispatch = useDispatch(); + const selectedProject = useSelector((store)=>store.localVariables.projectId); + const [project, setProject] = useState(null); const [projectDetails, setProjectDetails] = useState(null); @@ -17,6 +26,10 @@ const TaskPlannng = () => { const [loading, setLoading] = useState(true); const [error, setError] = useState(""); + useEffect( () => + { + dispatch(setProjectId(projects[0]?.id)) + },[projects]) const fetchActivities = async () => { try { @@ -43,9 +56,9 @@ const TaskPlannng = () => { const fetchData = async () => { try { - const project_cache = getCachedData(`projectinfo-${1}`); + const project_cache = getCachedData(`projectinfo-${selectedProject}`); if (!project_cache) { - ProjectRepository.getProjectByprojectId(1) + ProjectRepository.getProjectByprojectId(selectedProject) .then((response) => { setProjectDetails(response); setProject(response); @@ -73,14 +86,16 @@ const TaskPlannng = () => { }; const handleDataChange = (data) => { + console.log("datachange") fetchData(); }; useEffect(() => { - projectId =1 - fetchData(); + if((projects.length != 0)){ + fetchData(); fetchActivities(); - }, []); + } + }, [selectedProject]); return ( From a78c4b90db25fe7800d4ac260b4a9f82171b7459 Mon Sep 17 00:00:00 2001 From: "ashutosh.nehete" Date: Tue, 8 Apr 2025 14:58:00 +0530 Subject: [PATCH 5/5] Fixed the error "project not found" in daily task planning --- src/components/Activities/InfraPlanning.jsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/Activities/InfraPlanning.jsx b/src/components/Activities/InfraPlanning.jsx index d3b16d41..236b209c 100644 --- a/src/components/Activities/InfraPlanning.jsx +++ b/src/components/Activities/InfraPlanning.jsx @@ -49,7 +49,7 @@ const InfraPlanning = () => {!project_listLoader && projects?.filter(project => LoggedUser?.projects?.map(Number).includes(project.id)).map((project)=>( - + ))}