@@ -125,7 +140,9 @@ const FloorModel = ({
onChange={handleBuildigChange}
>
- {project.buildings.map((building) => (
+ {buildings &&
+ buildings?.length > 0 &&
+ buildings.map((building) => (
@@ -149,11 +166,19 @@ const FloorModel = ({
onChange={handleFloorChange}
>
- {selectedBuilding?.floors?.map((floor) => (
+ {/* {selectedBuilding?.floors?.map((floor) => (
- ))}
+ ) )} */}
+
+ {buildings &&
+ buildings[getValues("buildingId")]?.length > 0 &&
+ buildings[getValues("buildingId")]?.map((floor) => (
+
+ ))}
{errors.id && (
{errors.id.message}
@@ -186,11 +211,11 @@ const FloorModel = ({
: "Add Floor"}
diff --git a/src/hooks/useAttendance.js b/src/hooks/useAttendance.js
index 65f1f0f4..7c52244e 100644
--- a/src/hooks/useAttendance.js
+++ b/src/hooks/useAttendance.js
@@ -30,7 +30,10 @@ export const useAttendace =(projectId)=>{
useEffect(()=>{
- fetchData(projectId);
+ if ( projectId )
+ {
+ fetchData(projectId);
+ }
},[projectId])
return {attendance,loading,error}
@@ -40,7 +43,7 @@ export const useAttendace =(projectId)=>{
export const useEmployeeAttendacesLog = (id) => {
- const [logs, setLogs] = useState();
+ const [logs, setLogs] = useState([]);
const [loading, setLoading] = useState(false);
const [error, setError] = useState(null);
diff --git a/src/pages/Activities/AttendancePage.jsx b/src/pages/Activities/AttendancePage.jsx
index 71f05bc4..9e260433 100644
--- a/src/pages/Activities/AttendancePage.jsx
+++ b/src/pages/Activities/AttendancePage.jsx
@@ -100,6 +100,8 @@ const AttendancePage = () => {
dispatch(setProjectId(projects[0]?.id));
}, [projects]);
+
+
return (
<>
{isCreateModalOpen && modelConfig && (
diff --git a/src/pages/project/ProjectDetails.jsx b/src/pages/project/ProjectDetails.jsx
index 937c6de7..7d3850b5 100644
--- a/src/pages/project/ProjectDetails.jsx
+++ b/src/pages/project/ProjectDetails.jsx
@@ -14,15 +14,16 @@ import Breadcrumb from "../../components/common/Breadcrumb";
import { cacheData, getCachedData } from "../../slices/apiDataManager";
import ProjectRepository from "../../repositories/ProjectRepository";
import { ActivityeRepository } from "../../repositories/MastersRepository";
-
import "./ProjectDetails.css";
import {useEmployeesByProjectAllocated, useProjectDetails} from "../../hooks/useProjects";
+import {useDispatch} from "react-redux";
+import {setProjectId} from "../../slices/localVariablesSlice";
const ProjectDetails = () => {
let {projectId} = useParams();
const {projects_Details,loading:projectLoading,error:ProjectError} = useProjectDetails(projectId)
-
+ const dispatch = useDispatch()
const [project, setProject] = useState(null);
const [ projectDetails, setProjectDetails ] = useState( null );
const [activities, setActivities] = useState(null);
@@ -169,10 +170,11 @@ const ProjectDetails = () => {
useEffect(() => {
// fetchData();
+ dispatch(setProjectId(projectId))
setProject( projects_Details )
setProjectDetails(projects_Details)
fetchActivities();
- }, [projects_Details]);
+ }, [projects_Details,projectId]);
return (
diff --git a/src/slices/apiSlice/attedanceLogsSlice.js b/src/slices/apiSlice/attedanceLogsSlice.js
index ff5999ca..6e26c5b6 100644
--- a/src/slices/apiSlice/attedanceLogsSlice.js
+++ b/src/slices/apiSlice/attedanceLogsSlice.js
@@ -1,5 +1,6 @@
import { createSlice, createAsyncThunk } from '@reduxjs/toolkit';
import AttendanceRepository from '../../repositories/AttendanceRepository';
+import {clearCacheKey} from '../apiDataManager';
// Fetch attendance data
export const fetchAttendanceData = createAsyncThunk(
@@ -19,7 +20,7 @@ export const markAttendance = createAsyncThunk(
'attendanceLogs/markAttendance', // Updated action type prefix
async ( formData, thunkAPI ) =>
{
- debugger
+
try {
let newRecordAttendance = {
@@ -35,7 +36,8 @@ export const markAttendance = createAsyncThunk(
image: null,
};
- const response = await AttendanceRepository.markAttendance(newRecordAttendance);
+ const response = await AttendanceRepository.markAttendance( newRecordAttendance );
+ clearCacheKey("AttendanceLogs")
return response.data; // Return the newly created or updated record
} catch (error) {
return thunkAPI.rejectWithValue(error.message);
diff --git a/src/slices/apiSlice/attendanceAllSlice.js b/src/slices/apiSlice/attendanceAllSlice.js
index 6126ce77..d5dfc157 100644
--- a/src/slices/apiSlice/attendanceAllSlice.js
+++ b/src/slices/apiSlice/attendanceAllSlice.js
@@ -1,15 +1,16 @@
import { createSlice, createAsyncThunk } from '@reduxjs/toolkit';
import AttendanceRepository from '../../repositories/AttendanceRepository';
+import {clearCacheKey} from '../apiDataManager';
export const markCurrentAttendance = createAsyncThunk(
'attendanceCurrentDate/markAttendance',
async ( formData, {getState, dispatch, rejectWithValue} ) =>
{
- debugger
+
const { projectId } = getState().localVariables
try
{
- console.log(formData)
+
// Create the new attendance record
const newRecordAttendance = {
Id: formData.id || null,
@@ -26,6 +27,7 @@ export const markCurrentAttendance = createAsyncThunk(
const response = await AttendanceRepository.markAttendance(newRecordAttendance);
const markedAttendance = response.data
+ clearCacheKey("AttendanceLogs")
return markedAttendance;
} catch (error) {
diff --git a/src/utils/axiosClient.jsx b/src/utils/axiosClient.jsx
index dd08fdf3..c20be7f5 100644
--- a/src/utils/axiosClient.jsx
+++ b/src/utils/axiosClient.jsx
@@ -3,6 +3,7 @@ import { useNavigate } from "react-router-dom";
import axiosRetry from "axios-retry";
import showToast from "../services/toastService";
const base_Url = process.env.VITE_BASE_URL;
+// const base_Url = https://api.marcoaiot.com;
export const axiosClient = axios.create({
baseURL: base_Url, // Your Web API URL
withCredentials: false, // Required if the API uses cookies