Adding Dropdown in Daily Task Planning and call api. #412
@ -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>
|
||||||
|
@ -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>
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
Loading…
x
Reference in New Issue
Block a user