Merge pull request 'Adding Dropdown in Daily Task Planning and call api.' (#412) from Kartik_Task_DailyTask#1231 into Organization_Management

Reviewed-on: #412
This commit is contained in:
Vikas Nale 2025-09-20 06:09:58 +00:00
commit 25de45b31b
3 changed files with 60 additions and 19 deletions

View File

@ -55,7 +55,7 @@ const InfraPlanning = () => {
if (isFetched && (!projectInfra || projectInfra.length === 0)) { if (isFetched && (!projectInfra || projectInfra.length === 0)) {
return ( return (
<div className="card text-center"> <div className="text-center">
<p className="my-3">No Result Found</p> <p className="my-3">No Result Found</p>
</div> </div>
); );
@ -63,11 +63,9 @@ const InfraPlanning = () => {
return ( return (
<div className="col-md-12 col-lg-12 col-xl-12 order-0 mb-4"> <div className="col-md-12 col-lg-12 col-xl-12 order-0 mb-4">
<div className="card">
<div className="card-body" style={{ padding: "0.5rem" }}> <div className="card-body" style={{ padding: "0.5rem" }}>
<div className="row"> <div className="row">
<InfraTable buildings={projectInfra} projectId={selectedProject} /> <InfraTable buildings={projectInfra} projectId={selectedProject} />
</div>
</div> </div>
</div> </div>
</div> </div>

View File

@ -162,7 +162,7 @@ const ProjectInfra = ({ data, onDataChange, eachSiteEngineer }) => {
<div className="row "> <div className="row ">
{isLoading && <p>Loading....</p>} {isLoading && <p>Loading....</p>}
{projectInfra && projectInfra?.length > 0 && ( {projectInfra && projectInfra?.length > 0 && (
<InfraTable <InfraTable
buildings={projectInfra} buildings={projectInfra}
projectId={projectId} projectId={projectId}
// handleFloor={submitData} // handleFloor={submitData}

View File

@ -1,22 +1,31 @@
import React,{useEffect,useRef} from "react"; import React, { useEffect, useState } from "react";
import Breadcrumb from "../../components/common/Breadcrumb"; import Breadcrumb from "../../components/common/Breadcrumb";
import InfraPlanning from "../../components/Activities/InfraPlanning"; import InfraPlanning from "../../components/Activities/InfraPlanning";
import { useProjectName } from "../../hooks/useProjects"; import { useProjectName } from "../../hooks/useProjects";
import { useDispatch, useSelector } from "react-redux"; import { useDispatch } from "react-redux";
import { setProjectId } from "../../slices/localVariablesSlice"; import { setProjectId } from "../../slices/localVariablesSlice";
import { useSelectedProject } from "../../slices/apiDataManager"; import { useSelectedProject } from "../../slices/apiDataManager";
import { useProjectAssignedServices } from "../../hooks/useProjects";
const TaskPlannng = () => { const TaskPlannng = () => {
const selectedProject = useSelectedProject(); const selectedProject = useSelectedProject();
const dispatch = useDispatch(); const dispatch = useDispatch();
const { projectNames = [], loading: projectLoading } = useProjectName(); const { projectNames = [], loading: projectLoading } = useProjectName();
useEffect(() => { // Service dropdown state
if (!selectedProject) { const { data: assignedServices, isLoading: servicesLoading } =
dispatch(setProjectId(projectNames[0]?.id)); useProjectAssignedServices(selectedProject);
} const [selectedService, setSelectedService] = useState("");
}, [projectNames, selectedProject?.id, dispatch]);
useEffect(() => {
if (!selectedProject && projectNames?.length > 0) {
dispatch(setProjectId(projectNames[0]?.id));
}
}, [projectNames, selectedProject, dispatch]);
const handleServiceChange = (e) => {
setSelectedService(e.target.value);
};
return ( return (
<div className="container-fluid"> <div className="container-fluid">
@ -26,11 +35,45 @@ useEffect(() => {
{ label: "Daily Task Planning" }, { label: "Daily Task Planning" },
]} ]}
/> />
{selectedProject ? (
<InfraPlanning /> <div className="card">
) : ( <div className="card-body">
<div className="text-center">Please Select Project</div> {/* Service Dropdown */}
)} <div className="mb-1 ms-2">
{assignedServices?.length > 1 ? (
<select
id="serviceSelect"
className="form-select"
value={selectedService}
onChange={handleServiceChange}
style={{ fontSize: "0.875rem", height: "35px", width: "190px" }}
>
{assignedServices.map((service) => (
<option key={service.id} value={service.id}>
{service.name}
</option>
))}
</select>
) : (
<div
className="text-start"
>
{assignedServices?.length === 1
? <h5>{ assignedServices[0].name}</h5>
: "No service available"}
</div>
)}
</div>
{/* Infra Planning Component */}
{selectedProject ? (
<InfraPlanning selectedService={selectedService} />
) : (
<div className="text-center">Please Select Project</div>
)}
</div>
</div>
</div> </div>
); );
}; };