normalize activity data to ensure consistent display names.

This commit is contained in:
Pramod Mahajan 2025-05-03 12:25:23 +05:30
parent 80d64c87c6
commit 7d5d262728

View File

@ -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,7 +260,8 @@ const TaskModel = ({
onChange={handleActivityChange} onChange={handleActivityChange}
> >
<option value="0">Select Activity</option> <option value="0">Select Activity</option>
{activities {activityData && activityData.length > 0 ? (
activityData
?.slice() ?.slice()
?.sort((a, b) => { ?.sort((a, b) => {
const nameA = a?.activityName || ""; const nameA = a?.activityName || "";
@ -274,9 +270,15 @@ const TaskModel = ({
}) })
?.map((activity) => ( ?.map((activity) => (
<option key={activity.id} value={activity.id}> <option key={activity.id} value={activity.id}>
{activity.activityName} {activity.name ||
activity.activityName ||
activity.title ||
`Unnamed (id: ${activity.id})`}
</option> </option>
))} ))
) : (
<option disabled>No activities available</option> // Fallback if activities are empty
)}
</select> </select>
{errors.activityID && ( {errors.activityID && (