removed useMaster and dispatch from TaskModel after switching to useActivitiesMaster
This commit is contained in:
parent
bb23d10996
commit
8718aede85
@ -2,9 +2,7 @@ import React, { useState, useEffect } from "react";
|
||||
import { useForm } from "react-hook-form";
|
||||
import { zodResolver } from "@hookform/resolvers/zod";
|
||||
import { z } from "zod";
|
||||
import { useDispatch } from "react-redux";
|
||||
import { changeMaster } from "../../../slices/localVariablesSlice";
|
||||
import useMaster from "../../../hooks/masterHook/useMaster";
|
||||
import {useActivitiesMaster} from "../../../hooks/masterHook/useMaster";
|
||||
|
||||
const taskSchema = z.object({
|
||||
buildingID: z.string().min(1, "Building is required"),
|
||||
@ -17,9 +15,9 @@ const taskSchema = z.object({
|
||||
|
||||
const defaultModel = {
|
||||
id: null,
|
||||
buildingID: null,
|
||||
floorId: null,
|
||||
workAreaId: null,
|
||||
buildingID:"0",
|
||||
floorId: "0",
|
||||
workAreaId: "0",
|
||||
activityID: null,
|
||||
plannedWork: 0,
|
||||
completedWork: 0,
|
||||
@ -32,8 +30,7 @@ const TaskModel = ({
|
||||
onClearComplete,
|
||||
onClose,
|
||||
}) => {
|
||||
const dispatch = useDispatch();
|
||||
const { data: activities } = useMaster();
|
||||
|
||||
const [formData, setFormData] = useState(defaultModel);
|
||||
const [selectedBuilding, setSelectedBuilding] = useState(null);
|
||||
const [selectedFloor, setSelectedFloor] = useState(null);
|
||||
@ -41,6 +38,7 @@ const TaskModel = ({
|
||||
const [selectedActivity, setSelectedActivity] = useState(null);
|
||||
const [isSubmitting, setIsSubmitting] = useState(false);
|
||||
const [activityData, setActivityData] = useState([]);
|
||||
const {activities, loading, error} = useActivitiesMaster();
|
||||
|
||||
const {
|
||||
register,
|
||||
@ -54,7 +52,6 @@ const TaskModel = ({
|
||||
});
|
||||
|
||||
useEffect(() => {
|
||||
dispatch(changeMaster("Activity"));
|
||||
resetForm();
|
||||
}, []);
|
||||
|
||||
@ -117,18 +114,19 @@ const TaskModel = ({
|
||||
|
||||
const resetForm = () => {
|
||||
setFormData(defaultModel);
|
||||
setSelectedBuilding(null);
|
||||
setSelectedFloor(null);
|
||||
setSelectedWorkArea(null);
|
||||
setSelectedBuilding("0");
|
||||
setSelectedFloor("0");
|
||||
setSelectedWorkArea("0");
|
||||
setSelectedActivity(null);
|
||||
reset(defaultModel);
|
||||
};
|
||||
|
||||
useEffect(() => {
|
||||
if (activities && activities.length > 0) {
|
||||
setActivityData( activities );
|
||||
if (!loading && Array.isArray(activities) && activities.length > 0) {
|
||||
|
||||
setActivityData(activities);
|
||||
}
|
||||
}, [activities]);
|
||||
}, [activities, loading]);
|
||||
return (
|
||||
<div className="modal-dialog modal-lg modal-simple modal-edit-user">
|
||||
<div className="modal-content">
|
||||
@ -274,7 +272,7 @@ const TaskModel = ({
|
||||
</option>
|
||||
))
|
||||
) : (
|
||||
<option disabled>No activities available</option> // Fallback if activities are empty
|
||||
<option disabled>No activities available</option>
|
||||
)}
|
||||
</select>
|
||||
|
||||
@ -284,7 +282,6 @@ const TaskModel = ({
|
||||
</div>
|
||||
)}
|
||||
|
||||
{/* Planned Work */}
|
||||
{selectedActivity && (
|
||||
<div className="col-5 col-md-5">
|
||||
<label className="form-label" htmlFor="plannedWork">
|
||||
@ -302,7 +299,6 @@ const TaskModel = ({
|
||||
</div>
|
||||
)}
|
||||
|
||||
{/* Completed Work */}
|
||||
{selectedActivity && (
|
||||
<div className="col-5 col-md-5">
|
||||
<label className="form-label" htmlFor="completedWork">
|
||||
|
@ -16,7 +16,7 @@ export const useMasterRole = () =>
|
||||
useMasterData("masterRole", MasterRespository.getRoles);
|
||||
|
||||
|
||||
const useMaster = () => {
|
||||
const useMaster = (isMa) => {
|
||||
|
||||
const selectedMaster = useSelector((store)=>store.localVariables.selectedMaster);
|
||||
const [data, setData] = useState([]);
|
||||
@ -79,8 +79,37 @@ const useMaster = () => {
|
||||
return { data, loading, error }
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
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}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user