Compare commits

..

No commits in common. "abdb17ecf4c5b2d8ad4073b172412700c09496a7" and "3d62071fb61cb26b36e63afd9029771bf7302d10" have entirely different histories.

2 changed files with 22 additions and 47 deletions

View File

@ -2,7 +2,9 @@ import React, { useState, useEffect } from "react";
import { useForm } from "react-hook-form"; import { useForm } from "react-hook-form";
import { zodResolver } from "@hookform/resolvers/zod"; import { zodResolver } from "@hookform/resolvers/zod";
import { z } from "zod"; import { z } from "zod";
import {useActivitiesMaster} from "../../../hooks/masterHook/useMaster"; import { useDispatch } from "react-redux";
import { changeMaster } from "../../../slices/localVariablesSlice";
import useMaster from "../../../hooks/masterHook/useMaster";
const taskSchema = z.object({ const taskSchema = z.object({
buildingID: z.string().min(1, "Building is required"), buildingID: z.string().min(1, "Building is required"),
@ -15,9 +17,9 @@ const taskSchema = z.object({
const defaultModel = { const defaultModel = {
id: null, id: null,
buildingID:"0", buildingID: null,
floorId: "0", floorId: null,
workAreaId: "0", workAreaId: null,
activityID: null, activityID: null,
plannedWork: 0, plannedWork: 0,
completedWork: 0, completedWork: 0,
@ -30,7 +32,8 @@ const TaskModel = ({
onClearComplete, onClearComplete,
onClose, onClose,
}) => { }) => {
const dispatch = useDispatch();
const { data: activities } = useMaster();
const [formData, setFormData] = useState(defaultModel); const [formData, setFormData] = useState(defaultModel);
const [selectedBuilding, setSelectedBuilding] = useState(null); const [selectedBuilding, setSelectedBuilding] = useState(null);
const [selectedFloor, setSelectedFloor] = useState(null); const [selectedFloor, setSelectedFloor] = useState(null);
@ -38,7 +41,6 @@ const TaskModel = ({
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 [activityData, setActivityData] = useState([]);
const {activities, loading, error} = useActivitiesMaster();
const { const {
register, register,
@ -52,6 +54,7 @@ const TaskModel = ({
}); });
useEffect(() => { useEffect(() => {
dispatch(changeMaster("Activity"));
resetForm(); resetForm();
}, []); }, []);
@ -114,19 +117,18 @@ const TaskModel = ({
const resetForm = () => { const resetForm = () => {
setFormData(defaultModel); setFormData(defaultModel);
setSelectedBuilding("0"); setSelectedBuilding(null);
setSelectedFloor("0"); setSelectedFloor(null);
setSelectedWorkArea("0"); setSelectedWorkArea(null);
setSelectedActivity(null); setSelectedActivity(null);
reset(defaultModel); reset(defaultModel);
}; };
useEffect(() => { useEffect(() => {
if (!loading && Array.isArray(activities) && activities.length > 0) { if (activities && activities.length > 0) {
setActivityData( activities );
setActivityData(activities);
} }
}, [activities, loading]); }, [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">
@ -272,7 +274,7 @@ const TaskModel = ({
</option> </option>
)) ))
) : ( ) : (
<option disabled>No activities available</option> <option disabled>No activities available</option> // Fallback if activities are empty
)} )}
</select> </select>
@ -282,6 +284,7 @@ const TaskModel = ({
</div> </div>
)} )}
{/* Planned Work */}
{selectedActivity && ( {selectedActivity && (
<div className="col-5 col-md-5"> <div className="col-5 col-md-5">
<label className="form-label" htmlFor="plannedWork"> <label className="form-label" htmlFor="plannedWork">
@ -299,6 +302,7 @@ const TaskModel = ({
</div> </div>
)} )}
{/* Completed Work */}
{selectedActivity && ( {selectedActivity && (
<div className="col-5 col-md-5"> <div className="col-5 col-md-5">
<label className="form-label" htmlFor="completedWork"> <label className="form-label" htmlFor="completedWork">

View File

@ -16,7 +16,7 @@ export const useMasterRole = () =>
useMasterData("masterRole", MasterRespository.getRoles); useMasterData("masterRole", MasterRespository.getRoles);
const useMaster = (isMa) => { const useMaster = () => {
const selectedMaster = useSelector((store)=>store.localVariables.selectedMaster); const selectedMaster = useSelector((store)=>store.localVariables.selectedMaster);
const [data, setData] = useState([]); const [data, setData] = useState([]);
@ -79,37 +79,8 @@ const useMaster = (isMa) => {
return { data, loading, error } return { data, loading, error }
}; };
export default useMaster; export default useMaster;
export const useActivitiesMaster = () =>
{
const [ activities, setActivites ] = useState( [] )
const [ loading, setloading ] = useState( false );
const [ error, setError ] = useState( "" )
const fetchActivities =async () => {
const cacheddata = getCachedData("ActivityMaster");
if (!cacheddata) {
setloading(true);
try {
const response = await MasterRespository.getActivites();
setActivites(response.data);
cacheData("ActivityMaster", response.data);
} catch (err) {
setError(err);
console.log(err);
} finally {
setloading(false);
}
} else {
setActivites(cacheddata);
}
}
useEffect( () =>
{
fetchActivities()
}, [] )
return {activities,loading,error}
}