handled loading properly

This commit is contained in:
Pramod Mahajan 2025-06-14 10:45:43 +05:30
parent b76ca68059
commit dee44c63aa
2 changed files with 18 additions and 14 deletions

View File

@ -5,7 +5,7 @@ import AttendanceRepository from "../repositories/AttendanceRepository";
export const useAttendace =(projectId)=>{
const [attendance, setAttendance] = useState([]);
const[loading,setLoading] = useState(false)
const[loading,setLoading] = useState(true)
const [error, setError] = useState(null);
const fetchData = () => {
@ -16,7 +16,8 @@ export const useAttendace =(projectId)=>{
AttendanceRepository.getAttendance(projectId)
.then((response) => {
setAttendance(response.data);
cacheData("Attendance", { data: response.data, projectId })
cacheData( "Attendance", {data: response.data, projectId} )
setLoading(false)
})
.catch((error) => {
setLoading(false)

View File

@ -9,7 +9,7 @@ import AttendanceLog from "../../components/Activities/AttendcesLogs";
import Attendance from "../../components/Activities/Attendance";
import AttendanceModel from "../../components/Activities/AttendanceModel";
import showToast from "../../services/toastService";
import { useProjects } from "../../hooks/useProjects";
// import { useProjects } from "../../hooks/useProjects";
import Regularization from "../../components/Activities/Regularization";
import { useAttendace } from "../../hooks/useAttendance";
import { useDispatch, useSelector } from "react-redux";
@ -24,7 +24,7 @@ const AttendancePage = () => {
const [showOnlyCheckout, setShowOnlyCheckout] = useState();
const loginUser = getCachedProfileData();
var selectedProject = useSelector((store) => store.localVariables.projectId);
const { projects, loading: projectLoading } = useProjects();
// const { projects, loading: projectLoading } = useProjects();
const { attendance, loading: attLoading } = useAttendace(selectedProject);
const [attendances, setAttendances] = useState();
const [empRoles, setEmpRoles] = useState(null);
@ -99,11 +99,11 @@ const AttendancePage = () => {
setAttendances(attendance);
}, [attendance]);
useEffect(() => {
if (selectedProject === 1 || selectedProject === undefined) {
dispatch(setProjectId(loginUser?.projects[0]));
}
}, [selectedProject, loginUser?.projects]);
// useEffect(() => {
// if (selectedProject === 1 || selectedProject === undefined) {
// dispatch(setProjectId(loginUser?.projects[0]));
// }
// }, [selectedProject, loginUser?.projects]);
// Filter attendance data based on the toggle
// const filteredAttendance = showOnlyCheckout
@ -217,14 +217,11 @@ const AttendancePage = () => {
</ul>
<div className="tab-content attedanceTabs py-0 px-1 px-sm-3">
{projectLoading && <span>Loading..</span>}
{!projectLoading && !attendances && <span>Not Found</span>}
{activeTab === "all" && (
<>
{!projectLoading && filteredAttendance?.length === 0 && (
<p>No Employee assigned yet.</p>
)}
<div className="tab-pane fade show active py-0">
<Attendance
attendance={filteredAttendance}
@ -234,6 +231,9 @@ const AttendancePage = () => {
showOnlyCheckout={showOnlyCheckout}
/>
</div>
{!attLoading && filteredAttendance?.length === 0 && (
<p>No Employee assigned yet.</p>
)}
</>
)}
@ -253,6 +253,9 @@ const AttendancePage = () => {
<Regularization handleRequest={handleSubmit} />
</div>
)}
{attLoading && <span>Loading..</span>}
{!attLoading && !attendances && <span>Not Found</span>}
</div>
</div>
</div>