Hide Project Dropdown When Only One Project Is Assigned to Employee #202
@ -17,8 +17,7 @@ import {refreshData, setProjectId} from "../../slices/localVariablesSlice";
|
||||
import InfraTable from "../Project/Infrastructure/InfraTable";
|
||||
|
||||
|
||||
const InfraPlanning = () =>
|
||||
{
|
||||
const InfraPlanning = () => {
|
||||
const { profile: LoggedUser } = useProfile()
|
||||
const dispatch = useDispatch()
|
||||
const { projects, loading: project_listLoader, error: projects_error } = useProjects()
|
||||
@ -28,15 +27,12 @@ const InfraPlanning = () =>
|
||||
const { projects_Details, loading: project_deatilsLoader, error: project_error, refetch } = useProjectDetails(selectedProject)
|
||||
const reloadedData = useSelector((store) => store.localVariables.reload)
|
||||
|
||||
useEffect( () =>
|
||||
{
|
||||
useEffect(() => {
|
||||
dispatch(setProjectId(projects[0]?.id))
|
||||
}, [projects])
|
||||
|
||||
useEffect( () =>
|
||||
{
|
||||
if (reloadedData)
|
||||
{
|
||||
useEffect(() => {
|
||||
if (reloadedData) {
|
||||
refetch()
|
||||
dispatch(refreshData(false))
|
||||
}
|
||||
@ -50,19 +46,44 @@ const InfraPlanning = () =>
|
||||
<div className="align-items-center">
|
||||
<div className="row ">
|
||||
<div className="col-sm-3 col-8 text-start mb-1">
|
||||
<select name="DataTables_Table_0_length"
|
||||
aria-controls="DataTables_Table_0"
|
||||
{project_listLoader ? (
|
||||
<select
|
||||
name="project_select"
|
||||
className="form-select form-select-sm"
|
||||
value={selectedProject}
|
||||
onChange={(e)=>dispatch(setProjectId(e.target.value))}
|
||||
aria-label=""
|
||||
value=""
|
||||
disabled
|
||||
>
|
||||
{(project_listLoader || projects.length < 0) && <option value="Loading..." disabled>Loading...</option> }
|
||||
|
||||
{!project_listLoader && projects?.map((project)=>(
|
||||
<option key={project.id} value={project.id}>{project.name}</option>
|
||||
<option value="">Loading Projects...</option>
|
||||
</select>
|
||||
) : projects.length === 0 ? (
|
||||
<input
|
||||
type="text"
|
||||
className="form-control form-control-sm text-danger"
|
||||
value="No projects assigned."
|
||||
readOnly
|
||||
/>
|
||||
) : projects.length === 1 ? (
|
||||
<input
|
||||
type="text"
|
||||
className="form-control form-control-sm"
|
||||
value={projects[0].name}
|
||||
readOnly
|
||||
/>
|
||||
) : (
|
||||
<select
|
||||
name="project_select"
|
||||
className="form-select form-select-sm"
|
||||
value={selectedProject || ""}
|
||||
onChange={(e) => dispatch(setProjectId(e.target.value))}
|
||||
>
|
||||
{projects.map((project) => (
|
||||
<option value={project.id} key={project.id}>
|
||||
{project.name}
|
||||
</option>
|
||||
))}
|
||||
</select>
|
||||
)}
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
@ -240,18 +240,16 @@ const DailyTask = () => {
|
||||
DateDifference="6"
|
||||
dateFormat="DD-MM-YYYY"
|
||||
/>
|
||||
{/* FilterIcon component now manages its own filter states and logic */}
|
||||
<FilterIcon
|
||||
taskListData={TaskList} // Pass the raw TaskList to FilterIcon
|
||||
onApplyFilters={setFilters} // Callback to receive the filtered states from FilterIcon
|
||||
taskListData={TaskList}
|
||||
onApplyFilters={setFilters}
|
||||
currentSelectedBuilding={filters.selectedBuilding}
|
||||
currentSelectedFloors={filters.selectedFloors}
|
||||
currentSelectedActivities={filters.selectedActivities}
|
||||
// You can pass the project_loading state here if you want to disable filter during project load
|
||||
// isProjectLoading={project_loading}
|
||||
/>
|
||||
</div>
|
||||
<div className="col-md-4 col-12 text-center mb-2 mb-md-0">
|
||||
{project_loading ? (
|
||||
<select
|
||||
name="project_select"
|
||||
aria-controls="DataTables_Table_0"
|
||||
@ -259,21 +257,44 @@ const DailyTask = () => {
|
||||
value={selectedProject || ""}
|
||||
onChange={handleProjectChange}
|
||||
aria-label="Select Project"
|
||||
disabled={project_loading} // Disable dropdown while projects are loading
|
||||
disabled={true}
|
||||
>
|
||||
{project_loading && (
|
||||
<option value="" disabled>
|
||||
Loading Projects...
|
||||
</option>
|
||||
)}
|
||||
{!project_loading &&
|
||||
projects &&
|
||||
projects?.map((project) => (
|
||||
</select>
|
||||
) : projects.length === 0 ? (
|
||||
<input
|
||||
type="text"
|
||||
className="form-control form-control-sm "
|
||||
value="No projects assigned."
|
||||
readOnly
|
||||
aria-label="No projects assigned"
|
||||
/>
|
||||
) : projects.length === 1 ? (
|
||||
<input
|
||||
type="text"
|
||||
className="form-control form-control-sm"
|
||||
value={projects[0].name}
|
||||
readOnly
|
||||
aria-label="Assigned Project"
|
||||
/>
|
||||
) : (
|
||||
<select
|
||||
name="project_select"
|
||||
aria-controls="DataTables_Table_0"
|
||||
className="form-select form-select-sm"
|
||||
value={selectedProject || ""}
|
||||
onChange={handleProjectChange}
|
||||
aria-label="Select Project"
|
||||
>
|
||||
{projects?.map((project) => (
|
||||
<option value={project.id} key={project.id}>
|
||||
{project.name}
|
||||
</option>
|
||||
))}
|
||||
</select>
|
||||
)}
|
||||
</div>
|
||||
</div>
|
||||
<div className="table-responsive text-nowrap mt-3">
|
||||
|
Loading…
x
Reference in New Issue
Block a user