Correction in teams, projectinfra and daily task for dropdown.
This commit is contained in:
parent
fa694d8361
commit
a309d13247
@ -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 }) => {
|
||||
<div className="col-md-4 col-12 dataTables_length text-start py-2 px-2">
|
||||
<div className="ms-4 mt-n1">
|
||||
{!servicesLoading && assignedServices?.length > 0 && (
|
||||
assignedServices.length > 1 ? (
|
||||
<AppFormController
|
||||
name="serviceId"
|
||||
control={control}
|
||||
render={({ field }) => (
|
||||
<SelectField
|
||||
label="Select Service"
|
||||
options={[{ id: "", name: "All Services" }, ...(assignedServices ?? [])]}
|
||||
placeholder="Choose a Service"
|
||||
|
||||
labelKey="name"
|
||||
valueKey="id"
|
||||
value={field.value}
|
||||
onChange={(val) => {
|
||||
field.onChange(val);
|
||||
handleServiceChange(val);
|
||||
}}
|
||||
isLoading={servicesLoading}
|
||||
/>
|
||||
)}
|
||||
/>
|
||||
) : (
|
||||
<h5>{assignedServices[0].name}</h5>
|
||||
)
|
||||
<AppFormController
|
||||
name="serviceId"
|
||||
control={control}
|
||||
render={({ field }) => (
|
||||
<SelectField
|
||||
label="Select Service"
|
||||
options={[...(assignedServices ?? [])]}
|
||||
placeholder="Choose a Service"
|
||||
labelKey="name"
|
||||
valueKey="id"
|
||||
value={field.value}
|
||||
onChange={(val) => {
|
||||
field.onChange(val);
|
||||
dispatch(setService(val));
|
||||
}}
|
||||
isLoading={servicesLoading}
|
||||
/>
|
||||
)}
|
||||
/>
|
||||
)}
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
@ -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 = () => {
|
||||
<div className="card-body">
|
||||
<div className="row align-items-center justify-content-between mb-4 g-3">
|
||||
<div className="col-md-6 col-12 d-flex flex-wrap align-items-center gap-3">
|
||||
{!servicesLoading && assignedServices && (
|
||||
<>
|
||||
{assignedServices.length === 1 && (
|
||||
<h5 className="mb-2">{assignedServices[0].name}</h5>
|
||||
)}
|
||||
|
||||
{assignedServices.length > 1 && (
|
||||
<div className="col-12 col-md-6 mb-2 text-start">
|
||||
<AppFormController
|
||||
name="selectedService"
|
||||
control={control}
|
||||
render={({ field }) => (
|
||||
<SelectField
|
||||
label="Select Service"
|
||||
options={[{ id: "", name: "All Services" }, ...assignedServices]}
|
||||
placeholder="Choose a Service"
|
||||
labelKey="name"
|
||||
valueKey="id"
|
||||
value={field.value}
|
||||
onChange={field.onChange}
|
||||
isLoading={servicesLoading}
|
||||
className="w-100"
|
||||
/>
|
||||
)}
|
||||
{!servicesLoading && assignedServices?.length > 0 && (
|
||||
<div className="col-12 col-md-6 mb-2 text-start">
|
||||
<AppFormController
|
||||
name="selectedService"
|
||||
control={control}
|
||||
render={({ field }) => (
|
||||
<SelectField
|
||||
label="Select Service"
|
||||
options={[ ...assignedServices]}
|
||||
placeholder="Choose a Service"
|
||||
labelKey="name"
|
||||
valueKey="id"
|
||||
value={field.value}
|
||||
onChange={field.onChange}
|
||||
isLoading={servicesLoading}
|
||||
className="w-100"
|
||||
/>
|
||||
</div>
|
||||
)}
|
||||
</>
|
||||
)}
|
||||
/>
|
||||
</div>
|
||||
)}
|
||||
|
||||
|
||||
|
||||
<div className="form-check form-switch d-flex align-items-center text-nowrap">
|
||||
<input
|
||||
type="checkbox"
|
||||
|
||||
@ -15,7 +15,7 @@ const TaskPlanning = () => {
|
||||
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 <div className="text-center py-5">Loading...</div>;
|
||||
}
|
||||
|
||||
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 (
|
||||
<div className="container-fluid">
|
||||
<Breadcrumb
|
||||
@ -49,44 +63,31 @@ const TaskPlanning = () => {
|
||||
/>
|
||||
|
||||
<div className="card py-2 page-min-h">
|
||||
<div className="col-sm-4 col-md-3 col-12 px-4 py-2 ms-1 text-start">
|
||||
|
||||
{/* When no services available */}
|
||||
<div className="col-sm-4 col-md-3 col-12 px-4 py-2 text-start">
|
||||
{data?.length === 0 ? (
|
||||
<p className="badge bg-label-secondary m-0"></p>
|
||||
) : (
|
||||
<>
|
||||
{/* When exactly 1 service assigned → display heading */}
|
||||
{data?.length === 1 && (
|
||||
<h5 className="mb-3">{data[0].name}</h5>
|
||||
)}
|
||||
|
||||
{/* When multiple services → show dropdown */}
|
||||
{data?.length > 1 && (
|
||||
<AppFormController
|
||||
name="serviceFilter"
|
||||
control={control}
|
||||
render={({ field }) => (
|
||||
<SelectField
|
||||
label="Select Services"
|
||||
placeholder="All Services"
|
||||
options={[{ id: "", name: "All Services" }, ...(data ?? [])]}
|
||||
labelKey="name"
|
||||
valueKey="id"
|
||||
isLoading={servicesLoading}
|
||||
value={field.value}
|
||||
onChange={(val) => {
|
||||
field.onChange(val);
|
||||
dispatch(setService(val));
|
||||
}}
|
||||
className="m-0"
|
||||
/>
|
||||
)}
|
||||
<AppFormController
|
||||
name="serviceFilter"
|
||||
control={control}
|
||||
render={({ field }) => (
|
||||
<SelectField
|
||||
label="Services"
|
||||
placeholder="All Services"
|
||||
options={[{ id: "", name: "All Services" }, ...(data ?? [])]}
|
||||
labelKey="name"
|
||||
valueKey="id"
|
||||
isLoading={servicesLoading}
|
||||
value={field.value}
|
||||
onChange={(val) => {
|
||||
field.onChange(val);
|
||||
dispatch(setService(val));
|
||||
}}
|
||||
className="m-0"
|
||||
/>
|
||||
)}
|
||||
</>
|
||||
/>
|
||||
)}
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
@ -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 (
|
||||
<div className="container-fluid">
|
||||
<DailyProgrssContext.Provider value={contextDispatcher}>
|
||||
@ -120,44 +136,31 @@ const DailyProgrssReport = () => {
|
||||
/>
|
||||
|
||||
<div className="card page-min-h p-5">
|
||||
<div className="text-start">
|
||||
{/* Service Heading or Dropdown */}
|
||||
{!isLoading && data && (
|
||||
<>
|
||||
{/* If only 1 service assigned → show heading */}
|
||||
{data.length === 1 && (
|
||||
<h5 className="mb-3">{data[0].name}</h5>
|
||||
{data?.length > 0 && (
|
||||
<div className="col-sm-4 col-md-3 col-12 text-start">
|
||||
<AppFormController
|
||||
name="serviceFilter"
|
||||
control={control}
|
||||
defaultValue={service ?? ""}
|
||||
render={({ field }) => (
|
||||
<SelectField
|
||||
label="Services"
|
||||
options={[{ id: "", name: "All Services" }, ...(data ?? [])]}
|
||||
placeholder="Select Service"
|
||||
labelKey="name"
|
||||
valueKey="id"
|
||||
isLoading={isLoading}
|
||||
value={field.value}
|
||||
onChange={(val) => {
|
||||
field.onChange(val);
|
||||
setService(val);
|
||||
}}
|
||||
className="m-0"
|
||||
/>
|
||||
)}
|
||||
|
||||
{/* If multiple services → show dropdown */}
|
||||
{data.length > 1 && (
|
||||
<div className="col-12 col-md-3 mb-3 text-start">
|
||||
<AppFormController
|
||||
name="serviceFilter"
|
||||
control={control}
|
||||
defaultValue={service ?? ""}
|
||||
render={({ field }) => (
|
||||
<SelectField
|
||||
label="Select Service"
|
||||
options={[{ id: "", name: "All Services" }, ...data]}
|
||||
placeholder="Choose a Service"
|
||||
labelKey="name"
|
||||
valueKey="id"
|
||||
value={field.value}
|
||||
isLoading={isLoading}
|
||||
onChange={(val) => {
|
||||
field.onChange(val);
|
||||
setService(val);
|
||||
}}
|
||||
className="w-100"
|
||||
/>
|
||||
)}
|
||||
/>
|
||||
</div>
|
||||
)}
|
||||
</>
|
||||
)}
|
||||
</div>
|
||||
/>
|
||||
</div>
|
||||
)}
|
||||
|
||||
<div>
|
||||
<TaskReportList filter={filter}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user