normalize activity data to ensure consistent display names.
This commit is contained in:
parent
80d64c87c6
commit
7d5d262728
@ -40,24 +40,19 @@ const TaskModel = ({
|
|||||||
const [selectedWorkArea, setSelectedWorkArea] = useState(null);
|
const [selectedWorkArea, setSelectedWorkArea] = useState(null);
|
||||||
const [selectedActivity, setSelectedActivity] = useState(null);
|
const [selectedActivity, setSelectedActivity] = useState(null);
|
||||||
const [isSubmitting, setIsSubmitting] = useState(false);
|
const [isSubmitting, setIsSubmitting] = useState(false);
|
||||||
|
const [activityData, setActivityData] = useState([]);
|
||||||
|
|
||||||
const {
|
const {
|
||||||
register,
|
register,
|
||||||
handleSubmit,
|
handleSubmit,
|
||||||
formState: { errors },
|
formState: { errors },
|
||||||
reset,
|
reset,
|
||||||
|
setValue,
|
||||||
} = useForm({
|
} = useForm({
|
||||||
resolver: zodResolver(taskSchema),
|
resolver: zodResolver(taskSchema),
|
||||||
defaultValues: defaultModel,
|
defaultValues: defaultModel,
|
||||||
});
|
});
|
||||||
|
|
||||||
useEffect(() => {
|
|
||||||
if (clearTrigger) {
|
|
||||||
resetForm();
|
|
||||||
onClearComplete();
|
|
||||||
}
|
|
||||||
}, [clearTrigger, onClearComplete]);
|
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
dispatch(changeMaster("Activity"));
|
dispatch(changeMaster("Activity"));
|
||||||
resetForm();
|
resetForm();
|
||||||
@ -104,7 +99,7 @@ const TaskModel = ({
|
|||||||
|
|
||||||
const handleActivityChange = (e) => {
|
const handleActivityChange = (e) => {
|
||||||
const { value } = e.target;
|
const { value } = e.target;
|
||||||
const activity = activities.find((b) => b.id === Number(value));
|
const activity = activityData.find((b) => b.id === Number(value));
|
||||||
setSelectedActivity(activity);
|
setSelectedActivity(activity);
|
||||||
reset((prev) => ({
|
reset((prev) => ({
|
||||||
...prev,
|
...prev,
|
||||||
@ -115,14 +110,9 @@ const TaskModel = ({
|
|||||||
const onSubmitForm = async (data) => {
|
const onSubmitForm = async (data) => {
|
||||||
setIsSubmitting(true);
|
setIsSubmitting(true);
|
||||||
await onSubmit(data);
|
await onSubmit(data);
|
||||||
reset({
|
setValue("plannedWork", 0);
|
||||||
buildingID: data.buildingID,
|
setValue("completedWork", 0);
|
||||||
floorId: data.floorId,
|
dispatch(changeMaster("Activity"));
|
||||||
workAreaId: data.workAreaId,
|
|
||||||
activityID: data.activityID,
|
|
||||||
plannedWork: 0,
|
|
||||||
completedWork: 0,
|
|
||||||
});
|
|
||||||
setIsSubmitting(false);
|
setIsSubmitting(false);
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -135,6 +125,11 @@ const TaskModel = ({
|
|||||||
reset(defaultModel);
|
reset(defaultModel);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
if (activities && activities.length > 0) {
|
||||||
|
setActivityData(activities);
|
||||||
|
}
|
||||||
|
}, [activities]);
|
||||||
return (
|
return (
|
||||||
<div className="modal-dialog modal-lg modal-simple modal-edit-user">
|
<div className="modal-dialog modal-lg modal-simple modal-edit-user">
|
||||||
<div className="modal-content">
|
<div className="modal-content">
|
||||||
@ -265,18 +260,25 @@ const TaskModel = ({
|
|||||||
onChange={handleActivityChange}
|
onChange={handleActivityChange}
|
||||||
>
|
>
|
||||||
<option value="0">Select Activity</option>
|
<option value="0">Select Activity</option>
|
||||||
{activities
|
{activityData && activityData.length > 0 ? (
|
||||||
?.slice()
|
activityData
|
||||||
?.sort((a, b) => {
|
?.slice()
|
||||||
const nameA = a?.activityName || "";
|
?.sort((a, b) => {
|
||||||
const nameB = b?.activityName || "";
|
const nameA = a?.activityName || "";
|
||||||
return nameA.localeCompare(nameB);
|
const nameB = b?.activityName || "";
|
||||||
})
|
return nameA.localeCompare(nameB);
|
||||||
?.map((activity) => (
|
})
|
||||||
<option key={activity.id} value={activity.id}>
|
?.map((activity) => (
|
||||||
{activity.activityName}
|
<option key={activity.id} value={activity.id}>
|
||||||
</option>
|
{activity.name ||
|
||||||
))}
|
activity.activityName ||
|
||||||
|
activity.title ||
|
||||||
|
`Unnamed (id: ${activity.id})`}
|
||||||
|
</option>
|
||||||
|
))
|
||||||
|
) : (
|
||||||
|
<option disabled>No activities available</option> // Fallback if activities are empty
|
||||||
|
)}
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
{errors.activityID && (
|
{errors.activityID && (
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user