diff --git a/src/components/Project/ProjectInfra.jsx b/src/components/Project/ProjectInfra.jsx
index cd817a77..2c1c4749 100644
--- a/src/components/Project/ProjectInfra.jsx
+++ b/src/components/Project/ProjectInfra.jsx
@@ -55,7 +55,7 @@ const ProjectInfra = ({ data, onDataChange, eachSiteEngineer }) => {
const { data: assignedServices, isLoading: servicesLoading } =
useProjectAssignedServices(projectId);
- const { control } = useForm({
+ const { control, setValue } = useForm({
defaultValues: {
serviceId: selectedService || "",
},
@@ -74,6 +74,22 @@ const ProjectInfra = ({ data, onDataChange, eachSiteEngineer }) => {
};
+ useEffect(() => {
+ if (!servicesLoading && assignedServices?.length === 1) {
+ const serviceId = assignedServices[0].id;
+
+ // set form value
+ setValue("serviceId", serviceId, {
+ shouldDirty: true,
+ shouldValidate: true,
+ });
+
+ // sync redux
+ dispatch(setService(serviceId));
+ }
+ }, [assignedServices, servicesLoading, setValue, dispatch]);
+
+
return (
<>
{showModalBuilding && (
@@ -132,31 +148,27 @@ const ProjectInfra = ({ data, onDataChange, eachSiteEngineer }) => {
{!servicesLoading && assignedServices?.length > 0 && (
- assignedServices.length > 1 ? (
-
(
- {
- field.onChange(val);
- handleServiceChange(val);
- }}
- isLoading={servicesLoading}
- />
- )}
- />
- ) : (
- {assignedServices[0].name}
- )
+ (
+ {
+ field.onChange(val);
+ dispatch(setService(val));
+ }}
+ isLoading={servicesLoading}
+ />
+ )}
+ />
)}
+
diff --git a/src/components/Project/Team/Teams.jsx b/src/components/Project/Team/Teams.jsx
index ff919a69..e91a5dbf 100644
--- a/src/components/Project/Team/Teams.jsx
+++ b/src/components/Project/Team/Teams.jsx
@@ -34,7 +34,7 @@ const Teams = () => {
const [selectedEmployee, setSelectedEmployee] = useState(null);
const [deleteEmployee, setDeleteEmplyee] = useState(null);
const [activeEmployee, setActiveEmployee] = useState(false);
- const { control, watch } = useForm({
+ const { control, watch, setValue } = useForm({
defaultValues: {
selectedService: "",
searchTerm: "",
@@ -136,6 +136,18 @@ const Teams = () => {
return () => eventBus.off("employee", employeeHandler);
}, [employeeHandler]);
+ useEffect(() => {
+ if (!servicesLoading && assignedServices?.length === 1) {
+ const serviceId = assignedServices[0].id;
+
+ setValue("selectedService", serviceId, {
+ shouldDirty: true,
+ shouldValidate: true,
+ });
+ }
+ }, [assignedServices, servicesLoading, setValue]);
+
+
return (
<>
{AssigTeam && (
@@ -162,37 +174,30 @@ const Teams = () => {
- {!servicesLoading && assignedServices && (
- <>
- {assignedServices.length === 1 && (
-
{assignedServices[0].name}
- )}
-
- {assignedServices.length > 1 && (
-
-
(
-
- )}
+ {!servicesLoading && assignedServices?.length > 0 && (
+
- )}
- >
+ )}
+ />
+
)}
+
{
const selectedProject = useSelectedProject();
const selectedService = useCurrentService();
const dispatch = useDispatch();
- const { control } = useForm({
+ const { control,setValue } = useForm({
defaultValues: {
serviceFilter: selectedService ?? ""
},
@@ -39,6 +39,20 @@ const TaskPlanning = () => {
return
Loading...
;
}
+ useEffect(() => {
+ if (!servicesLoading && data?.length === 1) {
+ const serviceId = data[0].id;
+
+ setValue("serviceFilter", serviceId, {
+ shouldValidate: true,
+ shouldDirty: true,
+ });
+
+ dispatch(setService(serviceId));
+ }
+ }, [servicesLoading, data, setValue, dispatch]);
+
+
return (
{
/>
-
-
- {/* When no services available */}
+
{data?.length === 0 ? (
) : (
- <>
- {/* When exactly 1 service assigned → display heading */}
- {data?.length === 1 && (
-
{data[0].name}
- )}
-
- {/* When multiple services → show dropdown */}
- {data?.length > 1 && (
-
(
- {
- field.onChange(val);
- dispatch(setService(val));
- }}
- className="m-0"
- />
- )}
+ (
+ {
+ field.onChange(val);
+ dispatch(setService(val));
+ }}
+ className="m-0"
/>
)}
- >
+ />
)}
-
diff --git a/src/pages/DailyProgressReport/DailyProgrssReport.jsx b/src/pages/DailyProgressReport/DailyProgrssReport.jsx
index 258e0d2f..8f4f2e4a 100644
--- a/src/pages/DailyProgressReport/DailyProgrssReport.jsx
+++ b/src/pages/DailyProgressReport/DailyProgrssReport.jsx
@@ -46,7 +46,7 @@ const DailyProgrssReport = () => {
filter,
};
- const { control } = useForm({
+ const { control,setValue } = useForm({
defaultValues: {
serviceFilter: ""
}
@@ -85,6 +85,22 @@ const DailyProgrssReport = () => {
return updated;
});
};
+
+ useEffect(() => {
+ if (!isLoading && data?.length === 1) {
+ const serviceId = data[0].id;
+
+ // set form value
+ setValue("serviceFilter", serviceId, {
+ shouldDirty: true,
+ shouldValidate: true,
+ });
+
+ // set local state
+ setService(serviceId);
+ }
+ }, [isLoading, data, setValue]);
+
return (
@@ -120,44 +136,31 @@ const DailyProgrssReport = () => {
/>
-
- {/* Service Heading or Dropdown */}
- {!isLoading && data && (
- <>
- {/* If only 1 service assigned → show heading */}
- {data.length === 1 && (
-
{data[0].name}
+ {data?.length > 0 && (
+
+
(
+ {
+ field.onChange(val);
+ setService(val);
+ }}
+ className="m-0"
+ />
)}
-
- {/* If multiple services → show dropdown */}
- {data.length > 1 && (
-
-
(
- {
- field.onChange(val);
- setService(val);
- }}
- className="w-100"
- />
- )}
- />
-
- )}
- >
- )}
-
+ />
+
+ )}